为什么我的函数输出一个返回undefined的数组?

时间:2017-02-10 15:41:42

标签: javascript node.js express mongoose

我正在尝试使用此函数来查询我的数据库并返回所选项目的一些详细信息。它找到了项目,但它似乎返回undefined。

var recipefunc = function(name) {
      Item.find({name: name}, function(err, foundItem) {
          if(err) {
              console.log(err);
          } else {
              var image = foundItem[0].image;
              var link = foundItem[0]._id;
              var output = [image, link];
              console.log("function output:");
              console.log(output);
              return [image, link];
          }
   });
};

上面的console.log在数组中输出正确的信息,但不会比这更进一步。

我正在尝试将它添加到数组的这个对象中,这已经是更大对象的一部分了。

var recipe = {
        field1: recipefunc(req.body.field1),
        field2: req.body.field2,
        field3: req.body.field3,
        field4: req.body.field4,
        field5: req.body.field5,
        field6: req.body.field6,
        field7: req.body.field7,
        field8: req.body.field8,
        field9: req.body.field9,
    };

这是我回复给我的代码,我现在只专注于field1,我没有向其他人提供数据。

    recipe: 
   { field9: '',
     field8: '',
     field7: '',
     field6: '',
     field5: '',
     field4: '',
     field3: '',
     field2: '' },

1 个答案:

答案 0 :(得分:0)

var recipefunc = function(name, callback) {
      Item.find({name: name}, function(err, foundItem) {
          if(err) {
              console.log(err);
          } else {
              var image = foundItem[0].image;
              var link = foundItem[0]._id;
              var output = [image, link];
              console.log("function output:");
              console.log(output);
              callback([image, link]);
          }
   });
};