我将nodeJs应用程序划分为MVC架构 型号 Controller 服务 路由器 工具 日志 我的问题是我可以在服务层或 Controller 层中放置其余 api 的验证。我正在使用express 模块,并且我想使用express-validater 模块进行验证。哪一种方法更好?
最佳答案
更新2020年6月26日
您可以在架构中添加另一个文件夹(验证)
。该文件夹应包含验证中间件
/validation/auth.js
exports.signup = [
check('email').isEmail(),
(req, res, next) => {
const errors = validationResult(req);
if (!errors.isEmpty()) {
return res.status(422).json({ errors: errors.array() });
}
else next();
}
];
// more middlewares
现在,在您的 route
文件中,您可以在 Controller 层之前使用所需的验证中间件。
const express = require('express');
const { check } = require('express-validator/check');
const validate = require('../validation/auth');
const authController = require('../controllers/auth');
const router = express.Router();
router.post('/signup', validate.signup, authController.postSignup);
module.exports = router;
只有验证成功,您才能进入 Controller 层。
关于node.js - 我们将验证逻辑放在 NodeJs MVC 中的哪里?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54160430/