【问题标题】:How to return json array in return res.json in Node?如何在 Node 中的 return res.json 中返回 json 数组?
【发布时间】:2022-02-08 05:13:57
【问题描述】:

我可以使用这个返回数据数组:

 router.get('/api/person', async (req, res) => {
    const personData = await Person.find()
    return res.json(personData)
  })

但我无法使用第二种方法这样做

router.get('/api/person', async (req, res) => {
    const personData = await Person.find()
    return res.json({personInfo:[{
      id: personData._id,
      name: personData.personName,
      address: personData.personAddress
    }]})
  })

我应该如何使用第二种方法返回一个数据数组?谢谢

【问题讨论】:

    标签: mongoose


    【解决方案1】:

    您的问题与猫鼬无关。您正在寻找的是一个名为 map 的 javascript 概念。

    您的 mongo 查询正在返回它存储在其数据库中的数据,这并没有错。之后您要做的是将传入的数组转换为不同的结构,然后再将其发送出去。

    map 的帮助下,我们可以遍历personData 数组并创建一个仅包含您需要的三个元素的新数组。

    您的代码应该如下所示(强烈建议您阅读更多有关 map 函数的内容,以便您更好地理解它):

    router.get("/api/person", async (req, res) => {
      const personData = await Person.find();
    
      const personInfo = personData.map((person) => {
        return {
          id: person._id,
          name: person.personName,
          address: person.personAddress,
        };
      });
      
      return res.json({ personInfo });
    });
    

    【讨论】:

      猜你喜欢
      • 2020-03-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-06-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多