gpt4 book ai didi

node.js - Azure 函数 - 从磁盘读取文件并返回 HTML 页面

转载 作者:行者123 更新时间:2023-12-03 01:40:33 26 4
gpt4 key购买 nike

我正在我的 Linux 机器上本地测试 Azure Node Functions。

当触发时:

module.exports = async function (context, req) {
readFile = require('../SharedCode/readFile.js');
filepath = __dirname + '/../bootstrap-HTML-page/static/simple.html'
fs = require('fs');

fs.readFile(filepath,function(error,content){
if(error) {
content = error;
}
if(content) {
context.res = {
status: 200,
headers: {
'Content-Type': 'text/html'
},
body: content
}
}
})
};

然后我得到一个空回复。

但是,如果我运行此命令,则会得到预期的响应:

context.res = {
status: 200,
headers: {
'Content-Type': 'text/html'
},
body: '<html> <body> <h1> test </h1> </body> </html>'
}

我已经检查了变量content并且可以在其中看到我的HTML页面。我不明白为什么它没有响应页面。

编辑:我认为这是因为内置的 API fs 无法处理 Promise,您需要使用 Promisify 之类的东西来使其作为异步函数工作

最佳答案

I think this answer explains why it isn't working

This one how to make it work as a normal (non-async) function

这是我修改后的代码,现在可以使用:

var fs = require('fs');


module.exports = function (context, req) {
var filepath = __dirname + '/../bootstrap-HTML-page/static/simple.html'
fs.readFile(filepath, 'utf8', function (err, content) {
if (err) {
context.log.error(err);
context.done(err);
}
//context.log(result.name);
context.res = {
status: 200,
headers: {
'Content-Type': 'text/html'
},
body: content
};
context.done();
});
}

关于node.js - Azure 函数 - 从磁盘读取文件并返回 HTML 页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54113591/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com