我有一个 Azure 函数和一个名为 configAPI.json 的文件,它们位于同一文件夹中,如下图所示。
我想根据这篇文章使用以下代码阅读后者How can i read a Json file with a Azure function-Node.js但该代码根本不起作用,因为当我尝试查看其中是否有任何内容时我遇到的 configAPI 变量undefined
:
module.exports = async function (context, req) {
const fs = require('fs');
const path = context.executionContext.functionDirectory + '//configAPI.json';
configAPI= fs.readFile(path, 'utf-8', function(err, data){
if (err) {
context.log(err);
}
var result = JSON.parse(data);
return result
});
for (let file_index=0; file_index<configAPI.length; file_index++){
// do something
}
context.log(configAPI);
}
我在代码中缺少什么以确保我可以读取文件并在循环中的变量中使用它?
functionDirectory
- 给你你的功能应用程序的路径,然后你有你的单一功能
我认为你应该这样做:
const path = context.executionContext.functionDirectory + '\\configAPI.json';
如果你想解析你的 json 文件,你应该有:
const file = JSON.parse(fs.readFileSync(context.executionContext.functionDirectory + '\\configAPI.json'));
PS。上下文也有变量functionName
,因此其他实验选项是:
const path = context.executionContext.functionDirectory +
+ '\\' +context.executionContext.functionName + '\\configAPI.json';
我能够使用您的最后一个代码找到我的文件,但现在我无法使用
JSON.parse(const path = context.executionContext.functionDirectory + + '/' +context.executionContext.functionName + '/configAPI.json';
.@abautista 这就是我写实验的原因,因为我不确定 functionName 中究竟存储了什么
通过这两个片段,我将我的文件位置作为字符串类型接收,这是您的代码的输出:
C:\home\site\wwwroot\OptoHttpTriggerTest/OptoHttpTriggerTest/configAPI.json
. 我尝试使用JSON.parse()
,但这看起来不起作用。如何将此位置解析为 JSON?@abautista 如果您可以读取文件并且在解析 json 时遇到问题,那么请创建其他问题并提供详细信息,您是如何做到的,您遇到了什么错误
是的,我使用后它就像一个魅力
const path = context.executionContext.functionDirectory + '\\configAPI.json';