expressjs
仍然没有正式支持 Nodehttp2
.
欲了解更多详情,请访问此处 https://expressjs.github.io/statusboard/
但你可以使用node-spdy
。使用此模块,您可以在node.js中使用自然的http模块接口创建HTTP2 / SPDY服务器,并回退到常规https(对于既不支持HTTP2也不支持SPDY的浏览器):
const spdy = require('spdy')
const express = require('express')
const path = require('path')
const fs = require('fs')
const port = 3000
const app = express()
app.get('*', (req, res) => {
res
.status(200)
.json({message: 'ok'})
})
const options = {
key: fs.readFileSync(__dirname + '/server.key'),
cert: fs.readFileSync(__dirname + '/server.crt')
}
console.log(options)
spdy
.createServer(options, app)
.listen(port, (error) => {
if (error) {
console.error(error)
return process.exit(1)
} else {
console.log('Listening on port: ' + port + '.')
}
})
欲了解更多详情spdy
, 访问这里 https://github.com/spdy-http2/node-spdy.
如果您可以选择其他框架,则可以使用'KOA' or 'HAPI'支持节点http2
. 这可能对你有用 https://ivanjov.com/running-express-koa-and-hapi-on-http-2/
另外,请阅读此内容发布 5.0#2237 https://github.com/expressjs/express/pull/2237。它说:
Express 5 的目标是 API 调整和删除所有代码
从 Express 存储库,移至pillarjs 中的组件
项目 (https://github.com/pillarjs https://github.com/pillarjs),至少提供基本的
支持承诺返回处理程序和完整的 HTTP/2
功能。 Express 5 将成为“pillarjs 的视图”
是这些组件的排列。