Как req и res доступны через модули в Express.js - PullRequest
2 голосов
/ 18 апреля 2011

При использовании express.js для обработки различных маршрутов я хочу инкапсулировать весь свой код маршрута в отдельный модуль, но как я могу получить доступ к объекту req и res через модули, см. Код ниже. Основной файл examples.jsзаписанный следующим образом:

var app = require('express').createServer();
var login = require('./login.js');
app.get('/login', login.auth(app.req, app.res));
app.listen(80);

Я хочу, чтобы код обработки входа был записан в отдельном модуле / файле с именем login.js, поэтому вопрос заключается в том, каким образом объект ответа будет доступен в login.js.Я думаю, что следующий код не будет работать, так как тип req и res не разрешен.

exports.auth = function(req, res) {
    res.send('Testing');
}

Следовательно, когда я запускаю сервер с узла example.js, я получаю ошибку

«Невозможно вызвать отправку метода из неопределенного» * ​​1009 *

Как объекты Request и REsponse передаются по модулям

Ответы [ 2 ]

5 голосов
/ 18 апреля 2011

Это должно сработать:

app.get('/login', login.auth);

Ваш пример пытался передать возвращаемое значение функции login.auth в качестве обработчика get для запроса.Вместо этого вышесказанное передает саму функцию login.auth в качестве обработчика.

0 голосов
/ 26 апреля 2011

TJ Holowaychuk сделал несколько замечательных примеров для экспресса на странице github, вот один из них о разделении маршрутов:

https://github.com/visionmedia/express/tree/master/examples/route-separation

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...