JavaScript добавление значения в аргументы функции - PullRequest
0 голосов
/ 30 августа 2011

Я пытаюсь добавить аргумент в функцию, переданную в качестве аргумента в экспресс-маршруте js.

Это экспресс-маршрут:

app.get('path', someFunc,
function(req, res, next) {
  res.render('layout');
});

Функция someFunc тут же принимает аргументы req, res, next.

Я хочу добавить к этому дополнительный аргумент. Если я использую apply или call, кажется, он заменяет все существующие аргументы.

Я хочу иметь возможность:

someFunction (req, res, next, custom) {}

Как я могу это сделать? Спасибо.

Ответы [ 2 ]

0 голосов
/ 09 февраля 2012

Я бы создал маршрут, подобный этому:

// Inside your routes.js:
module.exports.someRoute = function(myArgument) {
  return function(req, res, next) {
    // Do whatever you want with myArgument.
  };
};

// Inside your app.js:
app.get('path', routes.someRoute({ foo: 1 }));

Таким образом, в настройках вашего маршрута нет логики.

0 голосов
/ 30 августа 2011

Я не уверен, что это лучший способ, но вы могли бы сделать что-то вроде этого:

var someFunc = function (req, res, next, custom) { console.log(custom); next(); }

app.get('path', 
function (req, res, next) { someFunc(req, res, next, 'custom') },
function(req, res, next) {
    res.render('layout');
});
...