Karena Anda tidak meneruskan dengan benar pengguna yang diambil ke query.exec
.
Anda perlu melakukan:
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'});
}
});
});
});
}
Saya tidak begitu mengerti mengapa Anda mengimpor Users Model
seperti itu. Saya tidak berpikir Node
akan dapat mengambilnya seperti itu.
Dan, Anda harus membutuhkan mongoose
di server.js
. Anda
Untuk menangkap penolakan, Anda memerlukan kode berikut:
UserFactory.userNameToId(id).then( function(response){
if(response.error){
console.log('error '+response.error);
}
if(response){
console.log('Got response '+response);
}
});