首页 > 解决方案 > json; 如何将我的 MongoDB 模型 res 数组作为 json 返回到路由器的 .get?(节点js)

问题描述

根据我的模型,我可以从我的数据库中成功连接、查询和查找我想要的所有文件。

但我实际上还不能将它们作为 JSON 返回......所以我的问题是,我怎样才能返回以下结果(console.log of res):

res的控制台日志

为我的获取请求进入 JSON?

为简洁起见,我的大多数 vars 模型被剪掉了:

const fileSchema = new mongoose.Schema({
  fileName: { type: String },
  versionData: [
    {
      versionID: { type: Number, required: false
    }
  ]
});

这是我的主要代码,我试图将我的 res 作为 JSON 返回,以便可以正确处理我的 Get 请求并显示结果。我试过返回 JSON.stringify(res),但这似乎不起作用。

// Controller code
findAll = function() {
  File.find({}, function(err, res) {
    if (err) console.log(err);
    else {
      // Res is populated successfully
      console.log(res);
      return res.json(); // JSON.stringify(res)
    }
  });
};

路由器:

// Return all results
router.get("/findAll", ctrlFile.findAll);

谢谢

标签: arraysnode.jsjsonmongodb

解决方案


嘿,所以我通过更改来完成这项工作:

findAll = function() {
  File.find({}, function(err, res) {
    if (err) console.log(err);
    else {
      return res.json();
    }
  });
};

至:

findAll = (req, res) => {
  File.find({}, function(err, result) {
    if (err) console.log(err);
    else {
      return res.json({ result });
    }
  });
};

推荐阅读