MongoDB
 sql >> Baza danych >  >> NoSQL >> MongoDB

zwróć błąd rozwiązania w funkcji węzła

Ponieważ nie przekazujesz poprawnie pobranego użytkownika do query.exec .

Musisz zrobić:

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

Naprawdę nie rozumiem, dlaczego importujesz Users Model tak. Nie sądzę, aby Node będzie mógł to pobrać w ten sposób.

I powinieneś wymagać mongoose w swoim server.js

Aby złapać odrzucenie, potrzebujesz następującego kodu:

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



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Deserializacja interfejsu w MongoDB przy użyciu C# - Nieznana wartość dyskryminatora

  2. Mongo przesuń do tablicy wewnątrz tablicy

  3. Jak dopasować ciąg składający się ze znaków specjalnych, takich jak łącznik i spacje?

  4. Zwróć rzeczywisty typ pola w MongoDB

  5. Powolne zapytanie MongoDB