Javascript express.js返回的不必要数据

Javascript express.js返回的不必要数据,javascript,node.js,express,Javascript,Node.js,Express,我刚刚使用Express.js制作了简单的RESTAPI,但是Express返回了一个不必要的数据 以下是响应数据: { "code": 200, "status": "success", "message": "Success", "device_code": "2F1E6DB930", "data": [ { "_id": "5d84801cd3906f1e5cbec0c4" },

我刚刚使用Express.js制作了简单的RESTAPI,但是Express返回了一个不必要的数据

以下是响应数据:

{
    "code": 200,
    "status": "success",
    "message": "Success",
    "device_code": "2F1E6DB930",
    "data": [
        {
            "_id": "5d84801cd3906f1e5cbec0c4"
        },
        {
            "_id": "5d848032d3906f1e5cbec0c6"
        },
        {
            "_id": "5d8480bbd3906f1e5cbec0ca"
        }
    ]
}
不需要数据对象,因为我没有在代码中返回它

exports.register = async (req, res) => {
  if (utils.checkBody(req.body, utils.authBody)) {
    let User = services.db.collection('users')

    let deviceCode = Math.random().toString(16).substr(2, 10).toUpperCase()

    await User.insertOne({
      username: req.body.username,
      password: md5(req.body.password + process.env.SECRET_KEY),
      kode_device: deviceCode
    })

    response = Object.assign(utils.requestResponse.success, { device_code: deviceCode })
  } else {
    response = utils.requestResponse.incomplete_body
  }

  res.status(response.code).json(response)
}

// request response success

const requestResponse = {
  success: {
    code: 200,
    status: 'success',
    message: 'Success'
  }
}
我返回的唯一数据对象位于另一个端点中,比如说“showdata”,下面是代码

exports.show = async (req, res) => {
  if (req.params.device_code) {
    let General = services.db.collection(req.params.device_code)
    let query = undefined

    if (req.query.last_id === undefined || req.query.last_id === '') {
      query = {}
    } else {
      query = { _id: { '$gt':  ObjectId(req.query.last_id) } }
    }

    let data = await General.find(query).limit(10).toArray()

    response = Object.assign(utils.requestResponse.success, { data: data })
  } else {
    response = utils.requestResponse.incomplete_body
  }

  res.status(response.code).json(response)
}
我编写了一个脚本来对应用服务器代码进行集群,并通过nodemon运行


有什么解决办法吗?谢谢。

在发送utils.requestResponse.success之前,您是否尝试查看其内容

提示:有一种调试方法。在请求启动时放置一个断点,并逐步执行,直到您看到响应对象中有一个数据属性,并分析这部分代码中涉及的所有变量。您将注意到问题出在utils.requestResponse.success对象上

通过这种方式,您将注意到Object.assign将修改作为第一个参数传递的对象,因此当调用show端点时,您将注意到utils.requestResponse.success被修改,并且向其添加了一个数据属性。与执行以下操作相同:

utils.requestResponse.success.data = data;

必须传递空对象{}作为第一个参数,传递utils.requestResponse.success作为第二个参数,传递{data:data}作为第三个参数。这样修改的对象就是刚刚创建的第一个空对象。

Sooo,我的答案怎么样?我们在这里为你浪费空闲时间。至少给出一点反馈…:-
utils.requestResponse.success.data = data;