Node.js 使用Express对查找程序进行后置处理
我是Javascript新手。 我正在开发一个API,通过以下方式从MySQL检索信息: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
- Node.js
- 快车
- 续集
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之前,我需要对数据进行后处理
- 我需要使用
字段从Google API检索信息,并将此信息添加到API输出中data
- 我需要根据
字段计算一些值,并将这些值添加到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);