क्योंकि आप प्राप्त किए गए उपयोगकर्ता को query.exec
. पर सही ढंग से नहीं भेज रहे हैं ।
आपको यह करने की ज़रूरत है:
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'});
}
});
});
});
}
मैं वास्तव में समझ नहीं पा रहा हूं कि आप Users Model
का आयात क्यों कर रहे हैं उस तरह। मुझे नहीं लगता Node
इसे इस तरह ला पाएंगे।
और, आपको mongoose
. की आवश्यकता होनी चाहिए आपके server.js
. में
अस्वीकृति को पकड़ने के लिए आपको निम्नलिखित कोड की आवश्यकता होगी:
UserFactory.userNameToId(id).then( function(response){
if(response.error){
console.log('error '+response.error);
}
if(response){
console.log('Got response '+response);
}
});