Как передать запрос и next () как модуль в nodejs? - PullRequest
0 голосов
/ 25 ноября 2018
function doSomeMagicHere(req) {
  return new Promise(function(resolve, reject) {
    doSomeMagicWithSqlAndReq();
    if (success) {
      resolve();
    } else {
      reject();
    }
  });
}
app.use(function (req, res, next) {
    doSomeMagicHere(req)
      .then(() => next())
      .catch((error) => { next(showError()); } );
});

Это мой текущий код, который находится в index.js.Чтобы запустить приложение узла, я делаю nodemon index.js.Я хочу поместить этот код в отдельный файл и сделать что-то вроде require('./magic)(db, req) в index.js.Дело в том, что этот код должен быть успешным, прежде чем использовать другой метод app.use.Как мне этого добиться?

1 Ответ

0 голосов
/ 25 ноября 2018

Может быть, это то, что вы ищете?

// in magic.js
module.exports = (db) => (req, res, next) => new Promise((resolve, reject) => {
  // do magic here
})
  .then(data => next())
  .catch(error => res.status(501).send(JSON.stringify(error)))


// in index.js
const db = require('db-lib')
const magic = require('./magic')(db)
app.use(magic)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...