我目前正在开发一个nodeJS应用程序,需要在开始公开快速API之前检查bootstrap上的一些硬件和软件要求。
我面临的问题是它需要一个HTTP请求来触发一个动作,但是我的引导步骤不需要请求,因为它是在应用程序每次启动时执行的自治服务器端例程。 / p>
现在,我只是将我的引导过程作为一个节点模块,在调用express app实例之前需要它并执行它。但是,我觉得这样不那么干净。
如果有人可以提供帮助,那就太棒了:D
答案 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之前执行它。然而, 我觉得这样不那么干净。
为什么不干净?实际上,这很干净。