node.js服务器和带有express.js的HTTP / 2(2.0)

惠特克

当前是否可以获取node.js HTTP / 2(HTTP 2.0)服务器?以及Express.js的HTTP 2.0版本?

腰果

如果使用express@^5http2@^3.3.4,那么启动服务器的正确方法是:

const http2 = require('http2');
const express = require('express');

const app = express();

// app.use('/', ..);

http2
    .raw
    .createServer(app)
    .listen(8000, (err) => {
        if (err) {
            throw new Error(err);
        }

        /* eslint-disable no-console */
        console.log('Listening on port: ' + argv.port + '.');
        /* eslint-enable no-console */
    });

请注意https2.raw如果要接受TCP连接,这是必需的。

请注意,在撰写本文时(2016年5月6日),所有主流浏览器都不支持基于TCP的HTTP2

如果要接受TCP和TLS连接,则需要使用默认createServer方法启动服务器

const http2 = require('http2');
const express = require('express');
const fs = require('fs');


const app = express();

// app.use('/', ..);

http2
    .createServer({
        key: fs.readFileSync('./localhost.key'),
        cert: fs.readFileSync('./localhost.crt')
    }, app)
    .listen(8000, (err) => {
        if (err) {
            throw new Error(err);
        }

        /* eslint-disable no-console */
        console.log('Listening on port: ' + argv.port + '.');
        /* eslint-enable no-console */
    });

请注意,在写这篇文章的时候,我还是设法使expresshttp2工作(见https://github.com/molnarg/node-http2/issues/100#issuecomment-217417055)。但是,我已经设法使http2(和SPDY)可以使用spdy工作

const spdy = require('spdy');
const express = require('express');
const path = require('path');
const fs = require('fs'); 

const app = express();

app.get('/', (req, res) => {
    res.json({foo: 'test'});
});

spdy
    .createServer({
        key: fs.readFileSync(path.resolve(__dirname, './localhost.key')),
        cert: fs.readFileSync(path.resolve(__dirname, './localhost.crt'))
    }, app)
    .listen(8000, (err) => {
        if (err) {
            throw new Error(err);
        }

        /* eslint-disable no-console */
        console.log('Listening on port: ' + argv.port + '.');
        /* eslint-enable no-console */
    });

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

基于Node.js的服务器与类似Apache HTTP服务器的服务器

HTTP2与Nginx代理后面的node.js

Node JS作为HTTP服务器并托管angularJS SPA

带有护照和Nginx作为代理服务器的身份验证问题Node.js

Node.js HTTP2服务器错误:套接字挂起

启动node.js Express服务器即服务

带有node.js的MySql xdevapi:“服务器连接未使用X协议”

无法将带有二进制文件的POST发布到Node.js Express服务器

在Node.JS和Express之间,有人可以解释Web服务器的位置吗?

Node.js Express服务器端结构

setInterval是否会阻止/干扰node.js / express HTTP服务器?

如何使用带有ODBC连接的Node js连接Informix服务器?

Node.js&Express:如果服务器正在运行,则没有答案

无法使用Express和Node Js打开从服务器下载的pdf文件

Node.js HTTP服务器路由

node.js http服务器并发问题

如何使用Node.js从远程服务器复制带有空格和utf8的文件

在Node.js上的相同地址上服务WebSocket和HTTP服务器

带有node.js服务器端的dc.js

可以使用express在node.js中以相同的端口号运行http和https服务器吗?

Node.js HTTP服务器

在Node.JS和Express中的HTTPS服务器上拦截HTTP响应

带有daemontools的Node.js服务器不断重启

Node.JS Express服务器创建方法的区别

如何使用auth0和node.js在服务器中获取user.email?

带有Express软件包和EJS模板引擎的node.js中服务器上的两个网页之间的href链接

使用 node js express 服务器调用 python 脚本

使用 Angular 2(+) 和 Node/Express 服务器设置所有 TypeScript 项目

在 Node.js 中从客户端向服务器发送 HTTP2 中的多个 JSON 数据