Express.js中间件和引导程序

时间:2017-06-15 12:57:45

标签: javascript node.js express

我目前正在开发一个nodeJS应用程序,需要在开始公开快速API之前检查bootstrap上的一些硬件和软件要求。

我面临的问题是它需要一个HTTP请求来触发一个动作,但是我的引导步骤不需要请求,因为它是在应用程序每次启动时执行的自治服务器端例程。 / p>

现在,我只是将我的引导过程作为一个节点模块,在调用express app实例之前需要它并执行它。但是,我觉得这样不那么干净。

如果有人可以提供帮助,那就太棒了:D

2 个答案:

答案 0 :(得分:2)

因为javascript性质,你可以在做某事之前始终运行异步任务。

// checlForMinimalRequirements.js
function checkForMinimalRequirements() {
  return new Promise((resolve, reject) {

    // this is just an async mock
    setTimeout(() => {
      return Math.random() > 0.5 ? resolve() : reject();
    }, 2000);
  });
}


// index.js

import express from 'express';
import {checkForMinimalRequirements} from 'checkForMinimalRequirements';

Promise
  .resolve(checkForMinimalRequirements())
  .catch(() => {
    console.error('Missing Minimal Requirements');
    process.exit(1);
  })
  .then(() => {
    const app = express();

    return express.listen(/**/)
  })
;

答案 1 :(得分:1)

  

目前,我刚刚将自举过程作为节点模块,需要它   并在调用express app instantiation之前执行它。然而,   我觉得这样不那么干净。

为什么不干净?实际上,这很干净。