2016-05-16 1 views
0

У меня есть этот модуль в машинописном (или ES2015, код будет более или менее идентичны), что я хочу, чтобы ввести маршрут к:Dependency Injection к модулю аналогично использованию класса

var routeObject = express.Router(); 
var route: string = '/admin'; 

routeObject.get(route, 
    (req, res, next) => { 
     // Do something 
     return next(); 
    }, 
    jade.View('admin') 
); 

export default routeObject; 

В моей application.ts файл импортировать модуль и использовать его как это:

server.Express.use(observationsRoute); 

Я хочу, чтобы иметь возможность вводить путь/маршрут так же, как если бы я использовал класс, так что я могу написать что-то вроде этого:

server.Express.use(observationsRoute('/admin')); 

Как вы могли это достичь?

ответ

0

экспортировать функции, которые принимают маршрут в качестве аргумента и возвращает routeObject:

export default (route: string) => { 
    var routeObject = express.Router(); 

    routeObject.get(route + '/', 
     (req, res, next) => { 
      return next(); 
     }, 
     jade.View('admin') 
    ); 

    return routeObject; 
}