Parece que o mongo-sanitize O módulo npm é o ponto de partida para a funcionalidade de escape bruto. Honestamente, isso soa mais apropriado na camada de middleware de conexão/expressão porque na camada do mangusto, por design, o código não exerce nenhuma expectativa sobre os parâmetros de consulta/atualização em termos de serem escritos pelo desenvolvedor do aplicativo (nesse caso, eles não devem ser higienizados ou não funcionarão corretamente) ou envolver a entrada do usuário (que deve ser higienizada). Assim, eu recomendaria funções de middleware para limpar os locais mais comuns para entrada do usuário:
req.body
, req.query
e req.params
. Então, por exemplo, você pode fazer algo como (esboço):var json = require("body-parser").json;
var sanitize = require("mongo-sanitize");
function cleanBody(req, res, next) {
req.body = sanitize(req.body);
next();
}
function updateUser(req, res) {
//...
// safe to build an update query involving req.body here
}
app.put("/api/users", json(), cleanBody, updateUser);