如何将数据库对象序列化/表示为节点中 API 返回的 JSON

kad*_*ian 5 api json node.js express sequelize.js

我正在使用express.jssequelize.js构建 API。一旦我使用 sequelize 从数据库中检索了一个对象,我想

  • 过滤掉对象属性(例如检索用户,但不要将用户的密码哈希呈现为返回的 JSON)
  • 添加新的对象属性

在我将它作为 JSON 从 API 返回之前。

类似于这些 Rails 库的作用:

在节点中执行此操作的最常见框架是什么?或者做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);
  }
);
Run Code Online (Sandbox Code Playgroud)

这将返回以下 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
}
Run Code Online (Sandbox Code Playgroud)

但我想返回这样的东西:

{
  "id": 24,
  "full_name": "John Doe",
  "email": "mymail@example.com",
  "data": null
}
Run Code Online (Sandbox Code Playgroud)

不仅在这种情况下,而且在任何情况下都会呈现用户对象。

Spr*_*tte 0

好的,那么您想砍掉一些田地吗?您可以在服务器发送响应之前将其截断。例如,使用这样的模块https://www.npmjs.com/package/json-chop或者如果您使用 mongo db,您可以隐藏此处描述的字段https://docs.mongodb.org/manual/tutorial/查询结果中的项目字段/