所以我从mongoose得到这个对象,它是一个用户。我想删除哈希密码字段,但我似乎无法删除它。
尝试以下方法:
apiRoutes.get('/user/:id', function(req, res, next) {
User.findById(req.params.id, function(err, post) {
if (err) return next(err);
delete post['password'];
res.json(post);
});
});
肯定有一个密码字段,当我调试/ console.log时,它打印出密码的对象。
编辑:通过将选项传递给mongoose调用来解决此问题:
User.findById(req.params.id, '-password', function(err, post) { /* ... */ });
但仍然没有解释为什么删除不起作用?
答案 0 :(得分:0)
似乎mongoose返回的对象不是真正的javascript对象。
我必须将它转换为一个对象才能在其上使用基本功能:
apiRoutes.get('/user/:id', function (req, res, next) {
User.findById(req.params.id, function (err, post) {
if (err) return next(err);
post.toObject();
delete post.password;
res.json(post);
});