Expressjs вызывает промежуточное ПО из другого промежуточного ПО - PullRequest
0 голосов
/ 22 октября 2018

rout.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.Обновление: полный код страницы

Ответы [ 2 ]

0 голосов
/ 22 октября 2018

Попробуйте, это сработает для вас

В противном случае вы должны поменять только два места в коде, все правильно.

rout.js

    var router = require('express').Router();
    var all = require('./all');
    //call both start and finish from all.js file here
    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();
    }

   //export in this way 
    module.exports = {
        start,
        finish
    }
0 голосов
/ 22 октября 2018

Вы могли бы изменить ваш route.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];

rout.js :

var router = require('express').Router();
router.get('/all', require('./all'));
module.exports = router;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...