【发布时间】:2018-03-14 07:53:24
【问题描述】:
这里是 JavaScript 业余爱好者。我编写了一个私有 NodeJS 模块来管理我们的数据库连接字符串(解密密码和连接字符串构造),但是由于解密的性质,该模块返回了一个对数据库连接字符串的承诺。
我们使用的是 Sails,配置发生在变量对象的导出中:
module.exports.variables = { dbstring: 'mongodb://user:password@host/mydb' }
但是现在有了承诺,在这里挤一个字符串有点棘手。我尝试将“module.exports.variables”块放在“.then”块中:
myConfigModule.getDBString('mysql-master').then( result => {
module.exports.variables = { dbstring: result }
}
但随后 Sails 应用程序的其余部分无法启动,它试图访问“module.exports.variables”中的变量,并且只会得到“未定义”。我假设是因为应用程序的其余部分没有等待承诺被履行。
有什么建议吗?
【问题讨论】:
-
能分享一下getDBString函数吗? module.exports 不会等待
getDBString承诺解决。在这种情况下,在解决 promise 之前已经导出了一个文件。
标签: javascript node.js promise sails.js