Vì bạn không chuyển đúng người dùng đã tìm nạp đến query.exec
.
Bạn cần làm:
var Users = require('../models/users-model.js');
function usernametoid(id) {
return new Promise( function (resolve, reject) {
Users.findOne({ username : id }).then( function(user){
//If you use lodash you can do _.isNull(user)
if(user == null){
return reject({error : 'User not found'});
}
user.exec(function(userdata, error) {
if(userdata){
return resolve(userdata);
}
if(error){
return reject({error : 'Error while executing query'});
}
});
});
});
}
Tôi thực sự không hiểu tại sao bạn nhập Users Model
như thế. Tôi không nghĩ Node
sẽ có thể tìm nạp nó như vậy.
Và, bạn nên yêu cầu mongoose
trong server.js
của bạn
Để bắt được lời từ chối, bạn cần mã sau:
UserFactory.userNameToId(id).then( function(response){
if(response.error){
console.log('error '+response.error);
}
if(response){
console.log('Got response '+response);
}
});