sql >> Database >  >> NoSQL >> MongoDB

retourneer fout oplossen in knooppuntfunctie

Omdat u de opgehaalde gebruiker niet correct doorgeeft aan de query.exec .

Je moet doen:

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

Ik begrijp niet echt waarom je Users Model importeert zoals dat. Ik denk niet dat Node zal het zo kunnen ophalen.

En u moet mongoose . nodig hebben in uw server.js

Om de afwijzing op te vangen heeft u de volgende code nodig:

UserFactory.userNameToId(id).then( function(response){
  if(response.error){
    console.log('error '+response.error);
  }
  if(response){
    console.log('Got response '+response);
  }
});



  1. hoe mongoimport te gebruiken om een ​​json-bestand te importeren

  2. Haal het laatste MongoDB-record op per veld van datetime

  3. Mongodb windows setup admin webconsole wacht op verbindingen op poort 28017 fout

  4. Redis, luisteren naar pubsub-evenementen en deze omzetten in een stream voor betrouwbaarder gebruik