在将对象属性发送到前端之前寻找删除对象属性的方法 有什么理由可以解决这个问题:
var obj = {
name: 'cris',
age: 22,
}
console.log(obj) //output name, age
delete obj.name
console.log(obj) //output age
这不是:
User.findOne({ username: req.query.username }, function (err, user) {
if (user != null) {
console.log(user) //output all props
delete user.salt || delete user['salt']
console.log(user) //output all props
}
});
答案 0 :(得分:3)
答案 1 :(得分:1)
Mongoose正在返回一个模型实例,而不是您正在寻找的普通JS对象。您正在查找的数据可以使用user.toObject()
。
答案 2 :(得分:1)
db.collection.findOne()方法返回游标。你需要使用toObject()转换为对象。使用user.toObject()然后删除并将其发送到客户端。
答案 3 :(得分:1)
要使用delete,您需要通过调用toObject:
将模型文档转换为纯JavaScript对象SELECT TOP (1)
[ID], [Lat], [Lng],
geography::Point(32, 34, 4326).STDistance(geography::Point([Lat], [Lng], 4326)) as Dist
FROM
[Area]
ORDER BY
Dist
你也可以修改使用这个
User.findOne({ username: req.query.username }, function (err, user) {
if (user != null) {
console.log(user) //output all props
user = user.toObject();
delete user.salt || delete user['salt']
console.log(user) //remove salt prop
}
});