【问题标题】:Http2 not working with expressHttp2 不适用于 express
【发布时间】:2015-08-29 07:12:07
【问题描述】:

我有 server.js 文件,其中有一些代码

var express = require('express')
var app = express()
var fs = require('fs');
app.get('/', function (req, res) {
  res.send('hello, http2!')
})

var options = {
  key: fs.readFileSync('./localhost.key'),
  cert: fs.readFileSync('./localhost.crt')
};

require('http2').createServer(options, app).listen(8080);

之后我在 shell 中运行

$ node server.js

服务器正在等待,但我无法打开它。我试过http://localhost:8080https://localhost:8080(我知道这是对的。)。但是什么都没有发生,浏览器中没有错误没有响应,我做错了什么?还有.key.crt的文件不是我生成的,我只是复制的,会不会有问题?

【问题讨论】:

    标签: node.js express https server http2


    【解决方案1】:

    好的,这不是 http2 问题,只是 firefox 不想打开它。在 chrome 中,https://localhost:8080/ 上的一切都很好。

    【讨论】:

    • 我很惊讶你让这个工作,因为不应该工作。您使用什么版本的 express 来完成这项工作?
    • 如果您看到 Tom Rogers 的链接,那么您应该看到它在 Express 4 的更高版本中无法正常工作。我还在最新的 v5alpha2 中对其进行了测试,但仍然无法正常工作。从理论上讲,它将与 v5 的最终版本一起使用。 Express 对请求对象原型进行了更改,这与 http2 模块有关。
    【解决方案2】:

    在撰写本文时,使用 node-http2 和 express 存在已知问题,请参见此处:https://github.com/molnarg/node-http2/issues/100

    【讨论】:

      猜你喜欢
      • 2019-05-11
      • 1970-01-01
      • 2017-12-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-06-30
      • 2020-08-05
      相关资源
      最近更新 更多