我有一个.jade格式的注册表格
form(method='post', action='/users/register', enctype='multipart/form-data')
.form-group
label Name
input.form-control(name='name', type='text', placeholder='Enter Name' required)
.form-group
label Email
input.form-control(name='email', type='email', placeholder='Enter Email' required)
.form-group
label Username
input.form-control(name='username', type='text', placeholder='Usernamee' required)
.form-group
label Password
input.form-control(name='password', type='password', placeholder='Enter Password' required)
.form-group
label Password
input.form-control(name='password2', type='password', placeholder='Confirm Password' required)
.form-group
label Profile Image
input.form-control(name='profileimage', type='file')
input.btn.btn-default(name='submit', type='submit', values='Register')
这就是我创建新用户并将其添加到数据库中的方法,但是数据并未添加到数据库中。问题是它没有从表单字段中获取值: 名称,电子邮件用户名,密码均为NULL 我不明白为什么要采用所有值
router.post('/register', function(req, res, next) {
var newUser = new User({
name: req.body.name,
email: req.body.email,
username: req.body.username,
password: req.body.password,
profileImage: profileImageName
});
}
答案 0 :(得分:0)
您需要一个正文解析中间件来解析传入的请求正文。
从v4.16.0开始,Express具有一个built-in middleware function(基于body-parser
模块)来解析经过urlencoded的主体。但是此内置解析器无法处理多部分主体。
由于您要尝试处理multipart/form-data
,因此可能需要像multer这样的中间件。