我正在尝试使用mongodb作为数据库创建nodejs应用程序。我需要检查mongodb中是否存在用户名。如果用户名存在,则会输出“用户名不可用”,否则将列出该用户名的所有用户详细信息。
var userSchema = require('../schemas/user');
exports.collect = function(req,res) {
userSchema.find({ username: "bob" }).exec(function(err,display) {
if(err){
console.log(err);
}
else
{
if(display=='[]'){
res.send("username not available");
}
else{
res.send(display)
}
}
});
};
有没有替代或简单的方法来执行此操作?
答案 0 :(得分:2)
findOne
,因为它只能找到一条记录。如果user
不可用,您将知道此用户名不可用。不要忘记,即使发生错误,您仍然希望输出“某些”数据,因为您不希望客户端等到它超时。
var userSchema = require('../schemas/user');
exports.collect = function(req,res) {
userSchema.findOne({username: "bob"}).exec(function(err, user) {
if (err) {
console.log(err);
// Handle the error properly here, we should not continue!
return res.sendStatus(500);
}
if (!user) {
return res.send("username not available");
}
// Don't know what you want to do with it, I just display it like this
return res.json(user);
});
};