Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/40.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript NodeJS-Mongoose从find返回对象?_Javascript_Node.js_Mongodb_Mongoose - Fatal编程技术网

Javascript NodeJS-Mongoose从find返回对象?

Javascript NodeJS-Mongoose从find返回对象?,javascript,node.js,mongodb,mongoose,Javascript,Node.js,Mongodb,Mongoose,我正在用Mongoose编写node.js API 但是为了任务的目的,我想从我的find中获取对象作为变量 所以我有这个: exports.get_info = function(_id) { Session.findById(_id, function(err, session) { if (err) res.send(err); console.log (session); // the object is good return session; // try

我正在用Mongoose编写node.js API

但是为了任务的目的,我想从我的find中获取对象作为变量

所以我有这个:

exports.get_info = function(_id) {

  Session.findById(_id, function(err, session) {
  if (err)
    res.send(err);

  console.log (session); // the object is good
  return session; // trying to return it
   });
 };
但当我打电话时:

      session_ = sessions.get_info(id);
此处未定义
会话


有什么想法吗?

Mongoose model
find
这是一个同步功能,您无法立即获得结果。您应该使用回调或更好的解决方案-承诺(mongoose支持承诺):


正确的做法是:

exports.get_info = function(_id,callback) {

  Session.findById(_id, function(err, session) {
  if (err)
    res.send(err);

  console.log (session); // the object is good
  callback(null,session); // trying to return it
   });
 };
通过这种方式,您可以获得如下会话:

sessions.get_info(id,function(err,session){
if(err) console.log(err);
console.log(session);
});

您还可以返回error变量并在调用函数中打印它,例如:callback(err)
sessions.get_info(id,function(err,session){
if(err) console.log(err);
console.log(session);
});