如何从 NodeJS 中的 Azure 函数读取文件?

How to read a file from an Azure Function in NodeJS?

我有一个 Azure 函数和一个名为 configAPI.json 的文件,它们位于下图所示的同一文件夹中。

我想基于此 post 使用以下代码阅读后者,但代码根本不起作用,因为当我尝试查看 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。 context 也有变量 functionName 所以其他的实验选项是:

    const path = context.executionContext.functionDirectory + 
+ '\' +context.executionContext.functionName + '\configAPI.json';