[英]Remove value from Javascript object
So I have this object I get from mongoose, it's a user. 所以我有一个从猫鼬那里得到的对象,它是一个用户。 I want to delete the hashed password field but I can't seem te remove it.
我想删除哈希密码字段,但似乎无法删除它。
Tried the following: 尝试了以下内容:
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);
});
});
There's definitely a password field there, when I debug/console.log the object it prints out the password. 绝对有一个密码字段,当我调试/控制台.log对象时,它会打印出密码。
EDIT: Solved it by passing an option to the mongoose call: 编辑:通过将选项传递给猫鼬调用来解决:
User.findById(req.params.id, '-password', function(err, post) { /* ... */ });
But still doesn't explain why delete doesn't work? 但是仍然不能解释为什么删除不起作用?
It seems like the object that mongoose returned wasn't an actual javascript object. 似乎猫鼬返回的对象不是实际的javascript对象。
I had to convert it to an object in order to use basic functions on it: 我必须将其转换为对象,以便对其使用基本功能:
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);
});
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.