我想知道如何将以下代码移动到一个单独的函数(在同一个文件中),并在我调用POST或PUT路由来添加或更新文档时调用它。
我正在使用https://www.npmjs.org/package/express-validator
以下是我的POST路线,但是当我更新记录时,仍然需要验证标题。
app.post('/docs', auth, function (req, res) {
req.checkBody('title', 'Title is required').notEmpty();
var errors = req.validationErrors();
if(errors){
res.json(400, { errors: errors });
return;
}
//go ahead and save the document
});
我尝试过制作自己的函数,但我不确定在哪里放var errors = req.validationErrors();
,或者从单独的函数返回400错误是不好的做法。
非常感谢任何帮助/代码。
答案 0 :(得分:0)
middleware function的正文与您现在使用的代码几乎完全相同,只有两个显着的差异:
req.method
为POST或PUT。next()
函数。这将触发链中的下一个中间件功能,或路由处理程序。app.use('/docs', function(req, res, next) {
if (req.method == 'POST' || req.method == 'PUT') {
req.checkBody('title', 'Title is required').notEmpty();
var errors = req.validationErrors();
if (errors) {
res.json(400, { errors: errors });
return;
}
}
next();
});
app.post('/docs', auth, function (req, res) {
// go ahead and save the document
});