我正在尝试将Azure功能设置为在我的开发环境中本地运行。我希望连接到MongoDb数据库实例。
在我添加的local.settings.json
文件中:
"ConnectionStrings": {
"DB_CONNECT_STRING": "mongodb://localhost:27017/MyDatabase"
}
在我的功能中,我有:
module.exports = function (context, myTimer) {
console.log(process.env.DB_CONNECT_STRING);
context.done();
};
process.env.DB_CONNECT_STRING
未定义。
我假设我需要在环境变量中添加某种前缀,但我无法在任何地方找到这些内容。如何指定连接字符串并在功能代码中引用它?
答案 0 :(得分:4)
马特梅森是对的。
在Node.js中,我们应该在Values
集合中指定应用设置。然后,可以使用process.env
将这些设置作为环境变量读取。
{
"IsEncrypted": false,
"Values": {
"AzureWebJobsStorage": "",
"DB_CONNECT_STRING": "mongodb://localhost:27017/MyDatabase"
}
}
然后使用process.env.DB_CONNECT_STRING
获取值。
答案 1 :(得分:0)
对于那里的纯粹主义者,我找到了它。我设置了一个断点并评估了“process.env”并找到了这种格式的连接字符串:
ConnectionStrings:<ConnectionName>
所以如果我的 local.settings.json 看起来像这样:
{
"IsEncrypted": false,
"Values": {
"AzureWebJobsStorage": "",
"FUNCTIONS_WORKER_RUNTIME": "node",
},
"Host": {
"CORS": "http://localhost:8080"
},
"ConnectionStrings": {
"Prod": "MyConnString"
}
}
然后我会像这样访问它:
const sqlConnString = process.env['ConnectionStrings:Prod'];
由于冒号,您必须使用括号表示法。