You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Node.js如何为查询结果新增非表字段并调整返回结构

问题描述

需要将FirstName和LastName两个非Student数据表字段添加到查询响应中,但当前代码合并后结构不符合预期。

当前代码

let result = await Student.get(id)
let FirstName = "Paul"
let LastName = "Richard"

results = {
  ...result,
  FirstName: params.body.FirstName,
  LastName: params.body.LastName
}

当前返回结果

{
  0:{
     "Teacher": "adasfsafag",
     "Subject": "asdafdfhd",
  },
  "FirstName": "Paul",
  "LastName": "Richard"
}

期望返回结果

{
  "Teacher": "adasfsafag",
  "Subject": "asdafdfhd",
  "FirstName": "Paul",
  "LastName": "Richard"
}

原始返回结果(未添加字段时)

{
  "data": {
     "School":{
         "Teacher": "adasfsafag",
         "Subject": "asdafdfhd"
      }
  }
}

解决方案

问题核心是没有正确定位到要合并字段的目标对象——原始返回结果中Teacher和Subject实际在result.data.School下,而非直接在result根节点。调整代码如下:

let result = await Student.get(id);
let FirstName = "Paul";
let LastName = "Richard";

// 定位到包含Teacher/Subject的目标对象
const schoolData = result.data.School;
// 合并非表字段到目标对象
const results = {
  ...schoolData,
  FirstName: FirstName, // 若需从请求体取值则替换为 params.body.FirstName
  LastName: LastName    // 若需从请求体取值则替换为 params.body.LastName
};

说明

  • 先从result.data.School取出包含原有字段的对象,再通过扩展运算符...合并新字段,就能得到结构符合预期的响应。
  • 注意代码中存在变量定义与赋值不一致的问题:你定义了FirstName = "Paul",但合并时用了params.body.FirstName,请根据实际需求选择使用自定义变量值还是请求体参数。

内容的提问来源于stack exchange,提问作者Yuno

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.24 20:57:20