我正在研究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"
}
答案 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。