1

我想在我的 expressJS API 中有登录/注册功能。所以现在我只是将密码和电子邮件插入到我的数据库中,我希望此功能首先检查具有此电子邮件的用户是否已经在数据库中 - 如果是,则发送该用户已记录的响应。如果没有,只需将他插入数据库。是否可以在这里处理一些错误?

这东西我已经有了:

exports.login = function(req, res){
var email = req.body.email;
var pwd = req.body.pass;

db.collection('users', function(err, collection) {
    collection.insert({login:email, password: pwd}, {safe:true}, function(err, result) {
      res.send("OK");
        });
    });
};\

并且不知道接下来会发生什么。

4

1 回答 1

0

您可以先尝试在数据库中查找用户。假设电子邮件是唯一的;

exports.login = function(req, res){
  var email = req.body.email;
  var pwd = req.body.pass;

  db.collection('users', function(err, collection) {
    if (err) return res.send(500, err);

    collection.findOne({login:email}, function(err, user) {
        // we found a user so respond back accordingly
        if (user) return res.send('user logged in');

        collection.insert({login:email, password: pwd}, {safe:true}, function(err, result) {
          if (err) return res.send(500, err);
          res.send("OK");
        });
    });
  });
};

处理错误时注意调用return前的 's 。res.send

于 2013-11-04T04:36:22.503 回答