如何在猫鼬数据库中添加用户信息?

时间:2018-08-14 06:39:08

标签: javascript node.js mongodb forms jade4j

我有一个.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
      });
}

1 个答案:

答案 0 :(得分:0)

您需要一个正文解析中间件来解析传入的请求正文。

从v4.16.0开始,Express具有一个built-in middleware function(基于body-parser模块)来解析经过urlencoded的主体。但是此内置解析器无法处理多部分主体。

由于您要尝试处理multipart/form-data,因此可能需要像multer这样的中间件。