Javascript expressJS+;MongoDB-登录/注册方法
我想在ExpressJSAPI中有登录/注册功能。 所以,现在我只是插入密码和电子邮件到我的数据库,我想这个功能首先检查是否与此电子邮件的用户已经在数据库中-如果是,发送用户已登录的响应。 若并没有,就把他插入数据库。 这里有可能处理一些错误吗 我已经有了:Javascript expressJS+;MongoDB-登录/注册方法,javascript,node.js,mongodb,express,Javascript,Node.js,Mongodb,Express,我想在ExpressJSAPI中有登录/注册功能。 所以,现在我只是插入密码和电子邮件到我的数据库,我想这个功能首先检查是否与此电子邮件的用户已经在数据库中-如果是,发送用户已登录的响应。 若并没有,就把他插入数据库。 这里有可能处理一些错误吗 我已经有了: exports.login = function(req, res){ var email = req.body.email; var pwd = req.body.pass; db.collection('users', functio
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
即使我输入相同的电子邮件,它仍然会插入新的文档-你确定这些条件是好的吗?我的意思是if(user)
在javascript中工作?:)应该添加@Bulkan,我想:)@pawel使用传递给findOne
的回调调用时使用两个参数err
和数据库中的值。如果查询与任何内容都不匹配,则值
设置为null。在JavaScript中是一个虚假的值。