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

0
Vuong Tran 22 Окт 2018 в 10:21

2 ответа

Лучший ответ

Вы можете изменить свой 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;

Прочтите также этот вопрос и ответы, чтобы получить еще несколько деталей.

Согласно вашему комментарию:

< EM> 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];

< EM> routes.js :

var router = require('express').Router();
router.get('/all', require('./all'));
module.exports = router;
0
pzaenger 22 Окт 2018 в 08:04

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

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

< Сильный > routes.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
SUBHAM OJHA 22 Окт 2018 в 10:00
52924172