我是nodejs和mongodb的新手。下面我尝试根据用户名和密码搜索某个帐户。如果是真正的控制台,他们的详细信息会重定向到(' / main')路由。路线没有错。我正在使用mlabs,其中project1是我的集合的名称。我认为我的查询查询中的所有内容都出错,但我无法弄清楚是什么。
Schema :-
{
"_id": "id",
"UserName": "UserName",
"Password": "Password"
}
app.js
MongoClient.connect(url , function(err,db){
if (err) return;
app.post('/login' , urlencoder , function(req,res){
var user = {
UserName : req.body.UserName ,
Password : req.body.Password
};
db.collection('project1').find({user}).forEach(function(pes){
if(true)
{
console.log(pes);
}
else
{
res.redirect('/main');
}
});
});
});
答案 0 :(得分:1)
您的逻辑中存在几个问题
您应该在实际启动服务器之前尝试连接到mongodb
let globalDb;
MongoClient.connect(url,function(err,db){
if(!err) {
globalDb = db;
app.listen(3000, () => {
console.log('Server listening on port 3000');
});
}
})
您的查找查询不应该传递嵌套的用户字段{user},而应该传递
app.post('/login' , urlencoder , function(req,res){
var user = {
UserName : req.body.UserName ,
Password : req.body.Password
};
globalDb.collection('project1').find(user)(function(err,data){
if(data) {
// user exist
// do something
}
});
});