首页 > 解决方案 > Expressjs 从另一个中间件调用中间件

问题描述

路由.js

var router = require('express').Router();
router.get('/all', require('./all'));
module.exports = router;

all.js 工作

module.exports = function(req, res, next) {
   res.send('this one work');
};

all.js 不起作用

const start = function(req, res, next) {
  res.write('start');
  next();
}
const finish = function(req, res, next){
  res.write('finish!');
  res.end();
}

module.exports = function(req, res, next) {
   start,
   finish
};

如何使 all.js 工作。更新:页面的完整代码

标签: express

解决方案


您可以将您的 routes.js 更改为如下内容:

var router = require('express').Router();
var all = require('./all');
// Call your middlewares in the desired order 
router.get('/all', all.start, all.finish);
module.exports = router;

另请阅读此问题和答案以获取更多详细信息。

根据您的评论:

all.js

const start = function(req, res, next) {
  res.write('start');
  next();
}

const finish = function(req, res, next){
  res.write('finish!');
  res.end();
}

module.exports = [start, finish];

路线.js

var router = require('express').Router();
router.get('/all', require('./all'));
module.exports = router;

推荐阅读