node.js - 我们将验证逻辑放在 NodeJs MVC 中的哪里?

标签 node.js model-view-controller

我将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/

相关文章:

javascript - 将 sails.js 应用程序绑定(bind)到特定的 ip

node.js - 如何在连接到 Node 上的 websocket 服务器时传递消息

node.js - 在node js中接收多部分表单数据

node.js - 从浏览器插件/扩展控制 Arduino 设备

asp.net-mvc - MVC 3 - 新区域 - 404 错误 - 找不到资源 - 已尝试路由调试器

node.js - 用于用户和管理员的 deserializeUser

php - 如何在 Controller laravel 中使用获取对象

iphone - 单个 Controller 管理模型和多个 View Controller ?

c# - 使用 MSTest 和 Moq 测试存储库 - .Verify 不工作

javascript - Node.js 中的模型- View - Controller 模式