Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/39.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js 查找查询语法错误概念_Node.js_Mongodb_Express - Fatal编程技术网

Node.js 查找查询语法错误概念

Node.js 查找查询语法错误概念,node.js,mongodb,express,Node.js,Mongodb,Express,我是nodejs和mongodb的新手。下面我尝试根据用户名和密码搜索某个帐户。如果为true,则将其详细信息重定向到('/main')路由。路线没有问题。我使用的是mlabs,其中project1是我收藏的名称。我认为我的find查询中出现了问题,但我不知道是什么 Schema :- { "_id": "id", "UserName": "UserName", "Password": "Password" } app.js 在你的逻辑中有两个问题 在实际启动服务器之前,您应

我是nodejs和mongodb的新手。下面我尝试根据用户名和密码搜索某个帐户。如果为true,则将其详细信息重定向到('/main')路由。路线没有问题。我使用的是mlabs,其中project1是我收藏的名称。我认为我的find查询中出现了问题,但我不知道是什么

Schema :-
{
   "_id": "id",
   "UserName": "UserName",
   "Password": "Password"
}
app.js


在你的逻辑中有两个问题

  • 在实际启动服务器之前,您应该尝试连接到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 
             }
        });
    });
    

  • 。查找(用户)
    。它已经是一个对象了。你正在做
    .find({“user”:user})
    ,这简直是大错特错。阅读并了解语法的实际作用。你能发布你的
    project1
    schemaNote吗
    if(true)
    总是true,你永远不会重定向到/main。
    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 
             }
        });
    });