使用保存之前,我应该在Mongoose中验证唯一性吗?

时间:2018-12-04 03:17:21

标签: javascript node.js mongoose

我一般都不熟悉Node和Javascript,我想知道在使用.save之前是否应该使用FindOne来验证唯一性。

我的用户架构确实为电子邮件和用户名设置了Unique:true,并且我的当前代码像超级按钮一样工作,因为猫鼬返回了唯一性错误消息。

我想知道在尝试提高效率或其他目的之前验证唯一性是否更好?

当前代码如下:

export const createUser = (data) => {
  return new Promise( async (resolve, reject) => {
     const userData = JSON.parse(data);
     const newUser = new User(userData);
     await newUser.save((err) => {
       if(err){
         const msg = err.errmsg.toLowerCase();
         const errormsg = msg.includes('email') ? 'Email already in use' : msg.includes('username') ? 'Username already in use' : 'Unexpected error.'
         reject(JSON.stringify({error: errormsg}));
       }
       resolve(JSON.stringify({status: 200, created: true}));
     });
  });
};

在这里实现:

public register(req, res){
   validateRegisterForm(req.body).then(data => {
    createUser(data).then(resp => {
      res.send(resp);
    }).catch(err => {
      res.send(err);
    })
  }).catch(err => {
      res.send(err);
    });
}

0 个答案:

没有答案