我试图通过使用快速验证程序包来提高我的快速应用程序的安全性,我发现我可以用两种不同的方式来使用它。
中间件中的第一个:
const {check}=require("express-validator");
app.post(
"/random-post",
[
check("email").isEmail(),
],
(req, res) => {
//some code
})第二,路由器回叫的内部:
app.post("/random-post",(req,res,next)=>{
check(req.body.email).isEmail()
})这两种药物中哪一种最常用,或者我应该两者兼用?
发布于 2022-10-09 10:02:38
我认为这里的最佳实践是在到达控制器之前进行验证和sanitazion。在同一逻辑块中,还可以检查是否存在验证错误并返回错误。这样就永远不会到达控制器,因此您的控制器中的代码永远不会执行。我在下面更新了您的示例:
const {check} = require('express-validator');
app.post(
'/random-post', [
check('email').isEmail(),
(req, res, next) => {
const errors = validationResult(req);
if (!errors.isEmpty()) {
return res.status(422).json({
errors: errors.array()
});
}
next();
}
],
(req, res) => {
//some code in your controller
}
);
https://stackoverflow.com/questions/72159825
复制相似问题