Node.js 使用Express对查找程序进行后置处理

Node.js 使用Express对查找程序进行后置处理,node.js,express,sequelize.js,Node.js,Express,Sequelize.js,我是Javascript新手。 我正在开发一个API,通过以下方式从MySQL检索信息: Node.js 快车 续集 我基于Sequelize finder(findByPk,通过主键检索信息)开发了以下控制器。有几个嵌套的include exports.findByPk = (req, res) => { Poi.findByPk(req.params.id,{ attributes: [ 'name', 'desc

我是Javascript新手。 我正在开发一个API,通过以下方式从MySQL检索信息:

  • Node.js
  • 快车
  • 续集
我基于Sequelize finder(findByPk,通过主键检索信息)开发了以下控制器。有几个嵌套的include

exports.findByPk = (req, res) => {
  Poi.findByPk(req.params.id,{
        attributes: [
            'name',
            'description'
        ],
        include: [{
            model: Source,
            attributes: ['originalId'],
            where: {source: 'google'}
        },{
            ...
        }]
    })
    .then(data => {
        res.send(data);
    })
};
据我所知,finder输出了一个相对复杂的Sequelize实例对象
data
,该对象以res.send的形式传递(但API允许访问适当的Json)

在将结果传递到res.send之前,我需要对数据进行后处理

  • 我需要使用
    data
    字段从Google API检索信息,并将此信息添加到API输出中
  • 我需要根据
    数据
    字段计算一些值,并将这些值添加到API输出中(长话短说,它不能作为Sequelize查询的一部分,因为Sequelize中存在已知问题)
如何从
数据中检索所需的值
?我是否应该将其视为常规javascript对象,了解其结构,并手动检索所需的值?或者有什么方法可以做到这一点

之后,如何将信息添加到
数据
?我应该向
数据中添加信息,还是创建一个新对象?它应该是Sequelize对象还是像json一样的常规javascript对象


非常感谢

您可以将
数据
(实际上是
Poi
Sequelize模型的一个实例)转换为普通JS对象,然后以常规方式使用它:

.then(data => {
  const plainObject = data.get({ plain: true });
  plainObject.newProp = 1
  // some work here including accessing Google API
  ...
  res.json(plainObject);