自定义模块数据成功返回但未显示

时间:2017-07-18 12:47:55

标签: node.js module return

我在文件help.js中有一个自定义模块,其函数名称为getfriends(req,res,next,user)。用户是我想要的朋友。

for (var i = 0; i < users.length; i++) {
  for (var j = 0; j < docs.length; j++) {
    if (docs[j].user1 == users[i].username) {
      if (docs[j].user1 != req.body.user) {
        friends.push(users[i]);
      }
    } else if (docs[j].user2 == users[i].username) {
      if (docs[j].user2 != req.body.user) {
        friends.push(users[i]);
      }
    }
  }

  if (i == users.length-1) {
    console.log("friends",friends); //it displays my desired result and so I think the return is successfull
    return(friends);
  }
}

现在我收到数据,我这样做,数据没有显示。

console.log(Help.getfriends(req,res,next,req.session.user));

我尝试过: -

somevar = Help.getfriends(req,res,next,req.session.user);
console.log(somevar);

正在调用该模块,它正在显示完美的结果。请指导我如何从自定义模块正确获取数据。 另外,我已经完成了,

var Help = require('./help');

1 个答案:

答案 0 :(得分:1)

您的功能是异步的 当你console.log(...) <== there is no result yet.
所以我希望你console.log undefined

有关nodejs asyncronous nature的更多信息。