Я тестирую функции узла Azure локально на моем компьютере с Linux.
Когда это срабатывает:
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 не может обрабатывать обещания, и вам нужно использовать что-то вроде Promisify, чтобы заставить его работать как асинхронная функция