MongoDB
 sql >> Datenbank >  >> NoSQL >> MongoDB

Beheben Sie den Fehler in der Knotenfunktion zurück

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);
  }
});