被中止请求的响应事件具有状态码 200,且不调用原生 `response.end`
作者: dnechay创建于 2021年4月12日更新于 2025年8月4日
标签bug
const Hapi = require('@hapi/hapi');
const server = Hapi.server({
host: 'localhost',
port: 8080,
});
server.route({
method: 'GET',
path: '/abort-test',
handler: async function() {
return new Promise(function (resolve) {
setTimeout(function () {
resolve('OK');
}, 4000);
});
},
})
server.events.on('request', (request, event) => {
console.log(`Event: ${JSON.stringify(event)}`);
});
server.events.on('response', (request) => {
console.log(`Response Status Code: ${request.response.statusCode}`);
});
server.start();
console.log(`Server running at: ${server.info.uri}`);curl --max-time 1 http://localhost:8080/abort-testWhat was the result you got?
Server running at: http://localhost:8080
Event: {"request":"<SHORTENED>","timestamp":1584125752386,"tags":["request","error","abort"],"channel":"internal"}
Response Status Code: 200Native Node.js response.end isn't called.
内容来源: hapijs/hapi