在Node / Mongoose / Express中保持DB数据属性的私有性

时间:2014-03-25 17:35:23

标签: node.js mongodb express mongoose

有人能告诉我保持数据库数据私密且仅存储在Web服务器数据库中的最佳做法吗?我正在运行Node / MongoDB / Mongoose / Express堆栈。

我在User对象的数据库中有哈希的密码字段,显然不希望在发送用户数据时将其推送到客户端。

目前,我只是手动删除User对象的属性,然后再将其移交给Express,但这看起来有点不合时宜。在Mongoose或Express中是否有一种机制可以让您描述不应该通过网络发送的私有属性,并且只在服务器内部使用?

1 个答案:

答案 0 :(得分:0)

当您从包含这些字段的数据库中检索对象时,它们就是该对象的一部分。在发送它们之前从对象中删除它们根本不是很糟糕。您唯一的选择是:

  1. 在将属性发送到响应之前删除属性
  2. 仅将您想要的字段映射到新对象,并使用响应
  3. 发送出去
  4. 使用不同的查询,在处理面向公众的对象时排除这些属性