Weil Sie den abgerufenen Benutzer nicht korrekt an die query.exec
übergeben .
Sie müssen Folgendes tun:
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'});
}
});
});
});
}
Ich verstehe nicht wirklich, warum Sie Users Model
importieren so wie das. Node
glaube ich nicht wird es so holen können.
Und Sie sollten mongoose
benötigen in Ihrer server.js
Um die Ablehnung abzufangen, benötigen Sie den folgenden Code:
UserFactory.userNameToId(id).then( function(response){
if(response.error){
console.log('error '+response.error);
}
if(response){
console.log('Got response '+response);
}
});