Я пытаюсь создать предварительный обработчик, который дезинфицирует все данные, прежде чем его написал MongoDB см: http://mongoosejs.com/docs/middleware.htmlсанобработке данные перед сохранением Mongoose
Я попытался следующие действия, чтобы получить каждое свойство, чтобы иметь возможность дезинфицировать его :
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();
})
Любой из вышеуказанных подходов приводит к чему-то вроде следующего:
Thats выход:
for(var key in obj) {
console.log(obj[key])
}
https://gist.github.com/daslicht/cb855f53d86062570a96
Любой знает, как получить каждое отдельное свойство, так что я могу дезинфицировать его, пожалуйста?
~ Марк
[EDIT] Вот один из возможных обходной путь, в любом случае, было бы чище, чтобы иметь его непосредственно на уровне схемы, так как это было бы более DRY
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);
Источником выходных швов является тот факт, что «это» является экземпляром модели. Поэтому мне нужно как-то получить необработанные данные и сделать снимок и записать их обратно – daslicht
Я действительно сделал это с помощью простого промежуточного программного обеспечения. Еще более СУХОЙ. – fakewaffle
Благодарим вас за ответ, я даже подумал об этом, но при использовании промежуточного программного обеспечения Express мы либо должны добавить его вручную, чтобы каждый защищаемый маршрут, либо глобальное промежуточное ПО. Было бы неплохо, если бы мы могли это сделать как плагин Mongoose?Мне любопытно, вам нравится делиться своим промежуточным подходом, пожалуйста? – daslicht