我正在尝试创建一个预处理程序,在将所有数据写入 MongoDB 之前对其进行清理,请参见: http: //mongoosejs.com/docs/middleware.html
我尝试了以下方法来让每个属性都能够对其进行消毒:
blogSchema.pre('save', function (next) {
var obj = this;
console.log(obj)//-> https://gist.github.com/daslicht/70e0501acd6c345df8c2
// I've tried the following to get the single items :
Object.keys(obj).forEach(function (key) {
console.log('Keys: ',obj[key]);
});
//and:
for(var key in obj) {
console.log(obj[key])
}
//and:
_.each( self , function(value, key, list){
console.log('VALUE:',key);
})
next();
})
上述任何一种方法都会导致如下结果:
那是输出:
for(var key in obj) {
console.log(obj[key])
}
https://gist.github.com/daslicht/cb855f53d86062570a96
任何人都知道如何获得每个单一的财产,以便我可以对其进行消毒,好吗?
~马克
[编辑] 这是一种可能的解决方法,无论如何直接在方案级别上使用它会更干净,因为这会更干燥
var post = {
createdAt : req.body.date,
createdBy : req.user.username,
headline : req.body.headline,
content : req.body.content
}
_.each( post , function(value, key, list){
post[key] = sanitize(value).xss(); //its the sanetize function of node validator
})
var item = new Blog(post);