javascript - ExpressJS + MongoDB - 登录/注册方法

标签 javascript node.js mongodb express

我想在我的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");
        });
    });
};\

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

最佳答案

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

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");
        });
    });
  });
};

处理错误时,请注意 res.send 调用之前的 return

关于javascript - ExpressJS + MongoDB - 登录/注册方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19760320/

相关文章:

javascript - 使用 jQuery 将 1 个 div 分成 2 个高度相同的独立 div?

javascript - 如何用JS建立自己的甘特图

node.js - 如何使用无服务器功能获取 RAW Body?

node.js - 使用 Node 限制对第 3 部分 Apis 的请求

mongodb - 如何使用ReactiveMongo指定replicaSet名称?

javascript - Axios 返回未决 promise

javascript - 在 web2py 中使用 JavaScript 将元素存储在数据库中

javascript - express gzip 静态内容

node.js - 小型 Node.js 应用程序 Pod 的 GKE CPU 不足

python - pymongo支持批量查询吗?