【问题标题】:Putting a middleware in Node js + Express在 Node js + Express 中放置一个中间件
【发布时间】:2018-04-05 22:43:08
【问题描述】:

我在 node js 中使用 express 为我的 rest api 提供了这个不同的文件

  1. app.js
  2. router.js
  3. controller.js

app.js

var routes = require('./source/router');
.......
app.use('/application', routes);

路由器.js

var express = require('express');
var controller= require('./controller');
var router = express.Router();
router.route('/register').post(controller.register);

controller.js

module.exports = {
   register : function(req,res){
   }
}

它工作得很好,但我只想把中间件放在寄存器的端点。我尝试了不同的方法,但都没有奏效。我想维护这个结构。

【问题讨论】:

    标签: node.js rest express


    【解决方案1】:

    想要保持相同的结构限制了您的选择,但请尝试这样做:

    function customMiddleware(req, res, next) {
      //your code
        next();
    }
    
    router.route('/register').post(customMiddleware, controller.registerHero);
    

    【讨论】:

    • 您究竟为什么希望if (err) throw err; 这样做?
    • @jfriend00 你的意思是*我期望它做什么?
    • 好吧,它不会做任何有用的事情。它可能应该调用next(err)。您不只是在路由处理程序中间随机throw。很多人似乎认为if (err) throw err; 在服务器开发中有些用处。除非代码是同步的并且您已经专门定义了一个异常处理程序来处理该异常,否则这几乎永远不会是正确的。
    • 您能否将答案标记为正确@AvedisMaroukian
    • 我把它放在这里!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-06-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多