2015-10-26 25 views
1

我想从我的signin.ejs文件登录,点击在 我的登录页面的登录按钮后,它显示“无法读取属性集合未定义”什么是 问题。连接到node.js中的mongodb时,无法读取未定义的属性“集合”?

我这样定义我的路线app.js:

app.post('/login', routes.dologin); 

我定义的index.js我dologin路线:

exports.dologin = function (req, res) { 
res.locals.session = req.session; 

var user = req.body.user; 
db.authenticateUser(user.email, user.password, function  (err, response) { 
if (err) { 
....... 

....... 
} else { 
....... 

........ 
} 
}); 
}; 

在我db.js:

var mongo = require('mongoskin'), 
crypto = require('crypto'); 

module.exports = function (config) { 

var USERS_COLLECTION = 'users', 
ORDERS_COLLECTION = 'orders', 
salt = 'supersecretkey', 
db; 

    authenticateUser: function (emailId, password,   callback) { 
    db.collection(USERS_COLLECTION).count({email : emailId,   password: encryptPassword(password)}, function (err,   count) { 
    if (err) { 
console.log("error authenticating user: " + err); 
callback(new Error(err)); 
} else if (count === 0) { 
callback(new Error("emailid/password did not match")); 
} else { 
callback(null); 
} 
}); 
}, 
    } 

获取“Collection undefined”的问题在哪里?我想在这里 一切都是正确的...这里有什么问题吗?告诉我..请谢谢。

+0

'db'是不确定的,'VAR db'不是有效的数据库对象 –

回答

0

您应该添加以下代码db = mongo.db('localhost:27017/yourdb');

var mongo = require('mongoskin'), 
    crypto = require('crypto'); 

module.exports = function (config) { 

    var USERS_COLLECTION = 'users', 
     ORDERS_COLLECTION = 'orders', 
     salt = 'supersecretkey', 
     db = mongo.db('localhost:27017/yourdb'); 

    authenticateUser: function (emailId, password, callback) { 

     db.collection(USERS_COLLECTION).count({ 
      email: emailId, 
      password: encryptPassword(password) 
     }, function (err, count) { 
      if (err) { 
       console.log("error authenticating user: " + err); 
       callback(new Error(err)); 
      } else if (count === 0) { 
       callback(new Error("emailid/password did not match")); 
      } else { 
       callback(null); 
      } 
     }); 
    }, 
} 
+0

您好感谢这是工作。 – Nag

+0

但我加入这样的回报声明: \t回{ \t \t配置:功能(配置){ \t 分贝= mongo.db((配置配置: 'mongodb的://本地主机:27017 /贝宝' ),{w:1}); \t \t} – Nag

+0

但它不工作为什么?你能告诉我吗? – Nag

相关问题