无法在查询中查找使用variables

我在NodeJS上的窗口上工作。

我使用下面的代码来检查login凭据。 它工作正常,直到我改变到Ubuntu 16.04

我build立了我的环境,现在variables不被视为string。

它从数据库返回空集。 如果我这样做,这个user_name:"some user name",password:"some password" ,它工作正常。

请帮忙。 我被卡住了:-(抱歉,如果它是一个noobtypes的错误:-)

 app.post('/login', function(req, res, next) { var N1 = req.body.N1; var N2 = req.body.N2; console.log(N1+N2);//Getting passed successfully MongoClient.connect(url, function(err, db) { if (err) { throw err; console.log("into connectivity error"); } console.log(N1); db.collection('col.login').find({user_name:N1,pass:N2}).toArray(function(err, result) { if (err) { throw err; } resultArray=result; try{ req.session.userId = result[0]._id; req.session.userType = result[0].type; req.session.userComp = result[0].comp_id; req.session.cat = -1; if(result[0].type=="root") { res.redirect('/New_Company'); } 

数据库结构:

 { "_id" : ObjectId("xxxxxxxxxxxxxxxxxxx"), "user_name" : "xxxxxxx", "pass" : "xxxxx", "type" : "root", "email" : "xxxx@gmail.com", "comp_name" : "NULL", "default_page" : "main", "name" : "xxxxx", "comp_id" : "NULL" } 

       

网上收集的解决方案 "无法在查询中查找使用variables"

做以下的方式: –

 app.post('/login', function(req, res, next) { var N1 = (req.body.N1).toString();//Do toString() var N2 = (req.body.N2).toString(); console.log(N1+N2);//Getting passed successfully MongoClient.connect(url, function(err, db) { if (err) { throw err; console.log("into connectivity error"); } console.log(N1); db.collection('col.login').find({user_name:N1,pass:N2}).toArray(function(err, result) { if (err) { throw err; } resultArray=result; try{ req.session.userId = result[0]._id; req.session.userType = result[0].type; req.session.userComp = result[0].comp_id; req.session.cat = -1; if(result[0].type=="root") { res.redirect('/New_Company'); } }); 

有关toString()更多信息,请参阅String 。