Я пытаюсь использовать HTTP/2. Мой экспресс версия 5.0.0-alpha.2, http2 версия 3.3.4.TypeError: dest.end не является функцией
Я полагаю, http2 должен work well with express 5.
const http2 = require('http2');
// const http2 = require('spdy'); // using spdy package here, everything works perfect
const options = {
key: fs.readFileSync(path.join(__dirname, 'private', 'server.key')),
cert: fs.readFileSync(path.join(__dirname, 'private', 'server.crt'))
};
const server = http2
.createServer(options, app)
.listen(3000, err => {
if (err) throw new Error(err);
// I can see "Listening..." message, which means the server starts running well.
console.log('Listening...');
});
Сервер начинает работать хорошо, но когда я открываю сайт клиента, он дает мне эту ошибку в терминале:
_stream_readable.js:512 dest.end(); ^ TypeError: dest.end is not a function at Stream.onend (_stream_readable.js:512:10) at Stream.g (events.js:286:16) at emitNone (events.js:91:20) at Stream.emit (events.js:185:7) at endReadableNT (_stream_readable.js:975:12) at _combinedTickCallback (internal/process/next_tick.js:74:11) at process._tickCallback (internal/process/next_tick.js:98:9)
https://github.com/molnarg/node-http2/issues/100 похоже, что spdy is dead – Joe
@ Joe спасибо, сейчас я пытаюсь использовать пакет http2, но не смог. Вот откуда взялся этот вопрос. –
Я думаю, что человек, отвечающий на вопрос, который вы говорите, означает, что для работы HTTP/2 вам нужно использовать модуль 'spdy', а не модуль' http2'. Я могу реплицировать ошибку, которую вы получаете, и она исчезает, когда я использую 'spdy.createServer (...)' вместо 'http2.createServer (...)'. – robertklep