如何使用 node 和 express.js 仅发送 json 响应中的特定字段?

Posted

技术标签:

【中文标题】如何使用 node 和 express.js 仅发送 json 响应中的特定字段?【英文标题】:How can i send only particular field in json response using node and express.js? 【发布时间】:2017-03-27 17:55:30 【问题描述】:
[ 
 
   id: 6dcba0f57c9b73cc1,
   USER_ID: '945',
   ORDER_ID: '35220',
   PRODUCT_ID: '9982',
   CODE: '418567066',
   POINTS: '2000'

,
 
   id: 4dcba0f57c9b73cc7,
   USER_ID: '945',
   ORDER_ID: '43521',
   PRODUCT_ID: '1071',
   CODE: '4004091261',
   POINTS: '1000',
 ,
  id: dcba0f57c9b73cce,
   USER_ID: '945',
   ORDER_ID: '13594',
   PRODUCT_ID: '2482',
   CODE: '7592231244',
   POINTS: '2000',
 ,
 
   id: 0f57c9b73cc74dcba,
   USER_ID: '345',
   ORDER_ID: '43528',
   PRODUCT_ID: '1071',
   CODE: '4004091267',
   POINTS: '1000',
 
]

上面存储在我的积分汇总中的文档。

   id
   USER_ID
   ORDER_ID
   PRODUCT_ID
   CODE
   POINTS

而不是在每个文档中发送所有上述字段。我只需要发送

USER_ID
 ORDER_ID 
 CODE

以下是我的控制器代码,它将仅显示/发送USER_ID: '945' 点详细信息。

exports.userpos = function(req, res) 
    console.log(req.params.id)
    PointSummary.find('USER_ID':'945').exec(function (err, PointSummarys) 
    if(err)  return handleError(res, err); 
     //return res.status(200).json(PointSummarys);
     return res.status(200).json();
  );
;

我该如何解决这个问题?

【问题讨论】:

相关:***.com/questions/24348437/… 【参考方案1】:

您可以在 db 查询中传递您希望返回的所有字段。

exports.userpos = function(req, res) 
    console.log(req.params.id)
    PointSummary.find('USER_ID':'945', 
        'USER_ID': 1,
        'ORDER_ID': 1,
        'CODE': 1
    ).exec(function (err, PointSummarys) 
    if(err)  return handleError(res, err); 
     //return res.status(200).json(PointSummarys);
     return res.status(200).json();
  );
;

旁注:理想情况下,您希望将密钥名称保持为小写。 user_id 而不是 USER_ID

【讨论】:

没有我要求的响应现在我正在发送所有字段。但我应该只发送 USER_ID ,ORDER_ID ,CODE 以上代码只会返回_id, USER_ID ,ORDER_ID ,CODE。这不是你想要的吗? ***.com/questions/41124705/…

以上是关于如何使用 node 和 express.js 仅发送 json 响应中的特定字段?的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 node 和 express.js 仅发送 json 响应中的特定字段?

如何启用调试 express.js/node.js 应用程序

如何解析 node.js、express.js、mysql2 中“rows”对象的数据

如何在超级终端中停止运行 Node.js (Express) 服务器

如何在 Node.js / Express.js 中将中间件放在它自己的文件中

如何使用 node.js 在 express.js 上使用 twitter api 显示最后 20 条推文?