【发布时间】:2018-12-01 03:03:24
【问题描述】:
我有一个关于基于 express 的 node.js 应用程序的问题,该应用程序依赖于第一个 require()。这是我的第一个 node.js 应用程序。第一个 require() 命中 AWS ec2 参数存储以收集数据库的凭证。在此要求以异步方式解决之前,我无法连接到数据库。
我发现最好的方法是导出一个回调并将其余的 require() 语句包装在第一个 require() 的回调中。 这是一种不好的做法吗?
//app.js
var appConfig = require('./config/appconfig');
appConfig.fetchAppConfig(function(err, result) {
if(err) {
console.log(err);
console.error("Server failed to startup. Config parameters not available.");
}
else {
var express = require('express');
var path = require('path');
var cookieParser = require('cookie-parser');
...
app.use(bodyParser.json());
etc
...
//appConfig.js
module.exports = function fetchAppConfig(callback) {
getCredentials(function(err, result) {
if(err) {
console.log(err);
callback(err);
} else {
awsLogin.paramStoreService(result).then(
data => {
appConfig = decodeAppConfig(data.Parameter.Value);
callback(null, appConfig);
}
).catch(
error => {
console.error(error);
callback(err);
}
)
}
})
}
我错过了一个更简单的选择吗?
如果我有这个逻辑来将配置拉到部署代码的某个地方,我会更好吗?
【问题讨论】: