我正在使用express.js
和sequelize.js
构建API。使用序列化从数据库中检索到对象后,我想
在从API作为JSON返回之前。
与这些Rails库类似:
在 Node 中最常用的框架是什么?还是
sequelize.js
/express.js
包含执行此操作的功能?更新
好的,有一个基本示例,passport.js从数据库获取经过身份验证的用户的对象,并将其附加到
req.user
;router.get('/me/data',
passport.authenticate('bearer', { session: false }),
function(req, res) {
res.status(200).send(req.user);
}
);
这将返回以下JSON响应:
{
"id": 24,
"first_name": "John",
"last_name": "Doe",
"email": "mymail@example.com",
"password": "8d23cb9c4827bc06bb30ac47c06af0efbdbeb575001ab7de5387da4085f7184a381335c0f04b45f4a40e5a7042d47ae1e2d29d28fd5be1d534f09ba3db04e8ca",
"updatedAt": "2016-01-25T09:19:07.422Z",
"createdAt": "2016-01-25T09:19:07.422Z",
"data": null
}
但是我想返回这样的东西:
{
"id": 24,
"full_name": "John Doe",
"email": "mymail@example.com",
"data": null
}
不仅在这种情况下,而且在任何情况下都呈现用户对象。
最佳答案
最简单的解决方案是在发送req.user
之前对其进行编辑:
功能
render (user) {
callback({
"id": user.id,
"full_name": user.first_name + ' ' + user.last_name,
"email": user.email,
"data": null
});
}
router.get('/me/data',
passport.authenticate('bearer', { session: false }),
function(req, res) {
render(req.user, function(user) {
res.status(200).send(user);
});
}
);