расширить объект сервера nodejs

#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? Не понял вопроса…