Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Marcio Marques de Moraes

usando exports Node.js, mongodb

Recommended Posts

// arquivo
// session_controller.js
exports.dadosUsuario=function(io, socket, data,callback) {

ClientModel.find({idChat:'x2'},
function(err, doc) {
if(err){
callback(err,null);
}else{
console.warn('==='+doc);
callback(null,doc);
}
}
);

}

// arquivo
// app.js

session = require('./controllers/session_controller');

......
dUsuario=session.dadosUsuario(io, socket, data, 
function(err, res) { 
// até essa parte consigo ter os dados
return res;
});

console.warn('----'+dUsuario.nickname);
//retorna indefinido

 

Algum entendido em nodejs? Eu entendí que é uma questão asynchronous, mas como retornar na variavel dUsuario?

Compartilhar este post


Link para o post
Compartilhar em outros sites

return res;

 

voce não pode fazer isso, ali onde vc disse que tem os dados na verdade nesse caso não é 'aonde' vc tem eles, é 'quando'.

quando aquele bloco foi chamado no callback la dentro os dados foram passados para o mesmo e ele foi executado. tu não pode dar um return porque mesmo que ele retorne algo isso não é retornado para ninguem.

 

o que voce precisa fazer é tratar os dados dentro do callback.

Compartilhar este post


Link para o post
Compartilhar em outros sites

eu fiz um sistema de tele entregas com node + mysql, mas a idéia é a mesma, vc tem que tratar tudo dentro dos callbacks.

eu dividi tudo em actions fora de controllers, se não ia dar mto rolo, dai eu SEMPRE passava para a action tudo que eu precisava. na app principal eu tinha la um objeto com tudo, e ele era passado para dentro da action, que recebia os parametros pelo exports

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.