无法在查询中使用变量查找

时间:2016-06-07 07:30:05

标签: node.js mongodb mongodb-query

我正在研究NodeJS上的Windows项目。

我使用以下代码检查登录凭据。它工作正常,直到我改为 ubuntu 16.04

我设置了我的环境,现在变量不被视为字符串。

它从数据库返回空集。如果我这样做user_name:"some user name",password:"some password",它就可以了。

请帮忙。我被困了:-(对不起,如果它是一个noob类型的错误: - )

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"
}

1 个答案:

答案 0 :(得分:1)

采取以下方式: -

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()的详细信息,请参阅toString