为了账号安全,请及时绑定邮箱和手机立即绑定

当表单设置为 enctype='multipart/form-data' 时

当表单设置为 enctype='multipart/form-data' 时

开心每一天1111 2021-07-03 19:04:52
所以我正在使用基本的 node.js+express 制作这个登录身份验证应用程序。因此,当我从注册页面获取值(姓名、电子邮件等)时,我正在使用 express-validator 验证这些值。但是,当注册页面表单具有 enctype='multipart/form-data' 时,我得到的每个值都未定义(名称、电子邮件等)。但是当我删除 enctype='multipart/form-data' 时,值就很好了!!那么有什么解决方案吗?我只是 Node.js 的初学者。(PS 我需要 enctype='multipart/form-data' 因为我在注册时上传了个人资料图片)(PS 在代码中,我删除了中间件以显示仅 register.jade 及其路由的最小代码)我在没有使用enctype='multipart/form-data'的情况下已经成功注册,但是这里我无法上传图片。(PS使用multer进行文件上传)./app.jsvar createError = require('http-errors');var express = require('express');var path = require('path');var cookieParser = require('cookie-parser');var bodyParser = require('body-parser');var logger = require('morgan');var expressValidator = require('express-validator');var session = require("express-session");var passport = require("passport");var localStratergy = require("passport-local").Strategy;var multer = require("multer");var upload = multer({dest: './uploads'});var flash = require("connect-flash");var bcrypt = require("bcryptjs");var moongo = require("mongodb");var mongoose = require("mongoose");var db = mongoose.connection;var indexRouter = require('./routes/index');var usersRouter = require('./routes/users');const { check, validationResult } = require('express-validator');var app = express();app.use('/', indexRouter);app.use('/users', usersRouter);module.exports = app;
查看完整描述

1 回答

?
呼唤远方

TA贡献1856条经验 获得超11个赞

您使用'multipart/form-data'防止 Express 解析其他表单字段的值。解决此问题的最简单方法是使用解析多部分表单的中间件,并让您可以访问字段和图像。

有几个这样的中间件包,每个都有自己的支持/文档/记录:multer打杂多方等等我用的多,在过去的几个项目,没有问题,但也有新的软件包。


查看完整回答
反对 回复 2021-07-15
  • 1 回答
  • 0 关注
  • 223 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信