如何仅在NodeJ响应中发送列表的特定属性

时间:2019-07-10 08:37:31

标签: node.js json express

很抱歉,也许这是一个非常基本的问题/问题,但是我已经被卡住了一段时间。

我有一个使用ExpressJ和Sequelize构建的API。我已经成功获取了数据,但是在尝试将所有数据显示为列表时遇到了问题。 这是我的代码,用于设置响应:

exports.ok = function (values, res) {
var data = {
    'status': 200,
    'values': values
};
res.json(data);
res.end();
}

响应显示为:

enter image description here

上面的数据显示所有属性,我如何仅显示名称和ID。 谢谢。

3 个答案:

答案 0 :(得分:1)

按照@Sindis的建议,您只需要在响应上应用map,然后选择必填字段即可。

  exports.ok = function (values, res) {
      var data = {
        'status': 200,
        'values': values.map(val => return { id: val.id, name: val.name })
      };
      res.json(data);
      res.end();
    }

我希望它会有所帮助。

答案 1 :(得分:1)

如果使用序列化获取结果,则必须在查询表时设置属性。使用喜欢

const values = await db.Users.findAll({
    attributes: ['id', 'name'],
    order: [
        ['id', 'ASC']
    ]
});

答案 2 :(得分:0)

  

已解决

它可以使用:

exports.ok = function (values, res) {
var data = {
    'status': 200,
    'values': values.map(function (value) {
        return {
            id: value.id,
            name: value.name,
            email: value.email
        }
    })
};
res.type('json');
res.send(data);
};