Parce que vous ne transmettez pas correctement l'utilisateur récupéré au query.exec
.
Vous devez faire :
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'});
}
});
});
});
}
Je ne comprends pas vraiment pourquoi vous importez Users Model
comme ça. Je ne pense pas que Node
pourra le récupérer comme ça.
Et, vous devriez avoir besoin de mongoose
dans votre server.js
Pour attraper le rejet, vous avez besoin du code suivant :
UserFactory.userNameToId(id).then( function(response){
if(response.error){
console.log('error '+response.error);
}
if(response){
console.log('Got response '+response);
}
});