#node.js #module #express
#node.js #модуль #выразить
Вопрос:
Я использую express.js и мне нравится, что реализация маршрутов, событий и т.д. Похожа:
var app = express.createServer();
// events
app.emit('auth.login', req, res, next, {
email : 'foo@bar.com',
password: '1234'
});
app.on('auth.login', function(req, res, next, data){
console.log(data.email, data.password);
// ...
});
Теперь я хотел бы расширить экземпляр сервера своим собственным объектом (таким образом, как реализованы ’emit’ и ‘on’), например ‘actions’ — чтобы это было возможно:
// actions
app.actions('auth.login', req, res, next, {
// ...
});
app.done('auth.login', function(req, res, next, data){
// ...
});
Причина, по которой я хотел бы, чтобы это было реализовано подобным образом, заключается в том, что я хотел бы запускать различные асинхронные действия при определенных событиях.
Я не знаю, как это сделать? Есть предложения?
Комментарии:
1. «действия» могут быть реализованы как промежуточное программное обеспечение для маршрутов, но для того, чтобы использовать «готово», я думаю, единственный способ — вызвать его вручную, когда все сделано в маршруте, например, готово (запрос, разрешение, следующий).. Я не уверен, есть ли более чистый способ реализовать done()
2. Является ли единственной мотивацией здесь переименовать методы emit / on в actions / done? Не понял вопроса…