我不确定我是否编写了正确的json返回

问题描述 投票:0回答:1

我可以使用以下代码从控制台日志返回数据以及响应 json:

router.post('/contact/allcontact',JWTAuthenticatToken, async (req, res) => {  
  try{
      const contact = await Contact.find({id: {"$eq":sanitize(req.body.id)}}).sort({_id: -1})
      console.log(contact)
      res.json(contact)
  }catch(error){
      res.json({message:error})
  }
})

console.log(contact)结果如下:

[{…}]
0:
contactgender: "Male"
contactname: "John Doe"
createdAt: "2021-04-19T08:30:34.184Z"
date: "2021-04-19T08:30:34.180Z"
updatedAt: "2021-04-19T08:30:34.184Z"
__v: 0
_id: "607d3faa249bb52b88b51f42"
__proto__: Object
length: 1

我想要实现的是在返回 JSON 时定义自己的字段,例如:

router.post('/contact/allcontact',JWTAuthenticatToken, async (req, res) => {  
  try{
      const contact = await Contact.find({id: {"$eq":sanitize(req.body.id)}}).sort({_id: -1})
      console.log(contact)
      res.json({
        myContactInfo:[{
          myid:contact._id,
          mycontactgender:contact.contactgender,
          mycontactname:contact.contactname,
         }]
      })
  }catch(error){
      res.json({message:error})
  }
})

这是 myContactInfo 的结果:

{myContactInfo: Array(1)}
contactInfo: Array(1)
0:
__proto__: Object
length: 1
__proto__: Array(0)
__proto__:
constructor: ƒ Object()
hasOwnProperty: ƒ hasOwnProperty()
isPrototypeOf: ƒ isPrototypeOf()
propertyIsEnumerable: ƒ propertyIsEnumerable()
toLocaleString: ƒ toLocaleString()
toString: ƒ toString()
valueOf: ƒ valueOf()
__defineGetter__: ƒ __defineGetter__()
__defineSetter__: ƒ __defineSetter__()
__lookupGetter__: ƒ __lookupGetter__()
__lookupSetter__: ƒ __lookupSetter__()
get __proto__: ƒ __proto__()
set __proto__: ƒ __proto__()

但我无法返回数据。我哪里做错了?预先非常感谢并非常感谢任何帮助。谢谢

node.js express
1个回答
0
投票

这是一个 Express js 问题。

要解决您的问题,您首先需要检查联系人变量的类型,如果它是:

  • 您需要将字符串转换为 json 的字符串
  • 数组:您需要在数组中创建一个循环并创建对象并最终返回它。
  • 未定义:所以你有一个错误。

希望可以帮助您解决问题。

© www.soinside.com 2019 - 2024. All rights reserved.