我首先使用 express-form使用我的 api (Express 3.3.8) 来修剪传入的 POSTed 字段的前导和尾随空白。
但是,我相信要使用它,我必须将中间件中的表单字段和规则包含到我的路由中,如下所示:
app.post('/api/test', form(
字段(“用户名”).trim(),
字段(“密码”).trim(),函数(req,res...
我的问题是,有没有办法在不单独指定字段的情况下自动进行修剪?我知道配置选项:autoTrim
,但我认为我仍然需要在每个路由/中间件的基础上指定字段,对吗?我尝试将其排除在中间件之外,只执行 form.configure({autoTrim:true})
,但 req.body
字段没有任何变化。就像我根本没有包含 express-form
一样。
我不致力于express-form
。如果有另一种方法可以让 Express 始终修剪传入的 req.body
字段,请告诉我。
最佳答案
app.use(postTrimmer);
function postTrimmer(req, res, next) {
if (req.method === 'POST') {
for (const [key, value] of Object.entries(req.body)) {
if (typeof(value) === 'string')
req.body[key] = value.trim();
}
}
next();
}
在使用 postTrimmer
中间件之前,不要忘记打开 "body-parser"
模块。
关于node.js - 使用 Express,我可以自动修剪 req.body 中所有传入的 POSTed 字段吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30266295/