调试节点mongo

时间:2018-01-02 15:39:11

标签: javascript node.js mongodb

如何调试此错误:

这是简单的代码,但我不知道为什么我会收到错误。

module.exports.cliente = function(application, req, res){
    var cliente_id = req.query.id;
    console.log('cliente_id em cliente', req.query.id)
    var connection = application.config.dbConnection;
    var ClientesDAO = new 
    application.app.models.backOffice.ClientesDAO(connection);
    ClientesDAO.dadosCliente(cliente_id, function(err, dadosCliente){
        console.log('dadosCliente', dadosCliente)   
                        if (err) { 

                            console.log('entrou err getDadosCliente')
                            return (err); 
                        } 
                        console.log('entrou resolve getDadosCliente')

                        console.log('dadosClienteE', dadosCliente)                  
    })
}

我的dadosCliente模块:

ClientesDAO.prototype.dadosCliente = function(clienteid, callback){
 console.log('clienteid em dadosCliente', clienteid)
var client_id = new ObjectId.ObjectID(clienteid);
    this._connection.open(function(err, mongoClient){
        mongoClient.collection('clientes', function(err,collection){
            collection.find({_id:client_id}).toArray(function(err,result){
                        console.log('dadosCliente result', result)
                        callback(result);
                        mongoClient.close();
            })

        })
    })
}

现在我的日志:

cliente_id em cliente 5a4685503fdc5a2a616cd5e1
clienteid em dadosCliente 5a4685503fdc5a2a616cd5e1
dadosCliente result [ { _id: 5a4685503fdc5a2a616cd5e1,
    nome: 'Eva Oliveira',
    idade: '42',
    genero: 'feminino',
    email: 'eva.olveira@gmail.com' } ]
dadosCliente undefined
entrou err getDadosCliente

1 个答案:

答案 0 :(得分:0)

您正在接听此电话

  

ClientesDAO.dadosCliente(cliente_id,function(err,dadosCliente){

一个等待2个参数的回调函数。

之后,在您的dadosCliente模块中,您只使用一个参数调用回调函数,这应该是错误。因此,您应该使用结果前面的错误调用回调方法:

callback(err, result);