热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

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

如何解决《node.js服务器和带有express.js的HTTP/2(2.0)》经验,为你挑选了2个好方法。

目前是否有可能获得node.js HTTP/2(HTTP 2.0)服务器?和http 2.0版的express.js?



1> 小智..:
var express = require('express');
var app = express();

app.get('/', function (req, res) {
  res.send('hello, http2!');
});

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

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

编辑

此代码段取自Github上的对话.


FYI这不适用于`express @ 4.13.3`和`http2 @ 3.2.0`,看起来快递不会支持它直到v5.https://github.com/molnarg/node-http2/issues/100

2> Gajus..:

如果您正在使用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 05 06),主流浏览器都没有支持HTTP上的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 */
    });


推荐阅读
  • Node.js 开发入门:环境搭建与配置
    随着Node.js技术的日益成熟及其即将发布的1.0稳定版,越来越多的开发者开始关注并尝试这一高性能的服务器端JavaScript平台。本文将引导读者如何在Windows环境下安装配置Node.js,并介绍一些常用的开发工具和框架。 ... [详细]
  • 本文探讨了如何在Node.js环境中,通过Tor网络使用的SOCKS5代理执行HTTP请求。文中不仅提供了基础的实现方法,还介绍了几种常用的库和工具,帮助开发者解决遇到的问题。 ... [详细]
  • 了解如何快速搭建属于自己的个人博客,无需编程基础,适合Mac和Windows用户。通过本文,您将学会使用GitHub Pages和Hexo构建一个完全自主的在线空间。 ... [详细]
  • 本文详细介绍了C++标准模板库(STL)中各容器的功能特性,并深入探讨了不同容器操作函数的异常安全性。 ... [详细]
  • 使用 NDB 提升 Node.js 应用调试体验
    本文介绍了由 Google Chrome 实验室推出的新一代 Node.js 调试工具 NDB,旨在为开发者提供更加高效和便捷的调试解决方案。 ... [详细]
  • 每位开发者都应该拥有一个展示自我技能与分享知识的空间——个人技术博客。本文将指导你如何使用静态网站生成器Hexo结合GitHub Pages搭建这样一个平台。 ... [详细]
  • 本文探讨了Web开发与游戏开发之间的主要区别,旨在帮助开发者更好地理解两种开发领域的特性和需求。文章基于作者的实际经验和网络资料整理而成。 ... [详细]
  • 详细指南:使用IntelliJ IDEA构建多模块Maven项目
    本文在前两篇文章的基础上,进一步指导读者如何在IntelliJ IDEA中创建和配置多模块Maven项目。通过详细的步骤说明,帮助读者掌握项目模块化管理的方法。 ... [详细]
  • 探讨如何通过父组件更新子组件中的D3图表,特别是当涉及多个子组件间的交互时的方法与挑战。 ... [详细]
  • 本教程旨在指导开发者如何在Mac上设置React Native的开发环境,以进行iOS应用的开发。文中详细介绍了必要的软件安装步骤,包括Xcode、Homebrew、Node.js、Watchman以及React Native CLI等工具的安装方法。 ... [详细]
  • 这是一个基于 React 构建的掘金移动版应用,主要模仿了掘金的 UI 设计,并进行了部分自定义调整。项目专注于移动端体验,同时支持服务端渲染和渐进式网络应用(PWA)功能。 ... [详细]
  • 嗨,我正在为我的api调用使用axious,并且无法在nodejs中解析我的数据,不确定为 ... [详细]
  • 酷家乐 Serverless FaaS 产品实践探索
    本文探讨了酷家乐在 Serverless FaaS 领域的实践与经验,重点介绍了 FaaS 平台的构建、业务收益及未来发展方向。 ... [详细]
  • EBSOAF12.2开发中对EL(ExpressionLanguage)的支持(版权声明,本人原创或者翻译的文章如需转载,如转载用于个人学习,请注明出处;否则请与本人联系,违者必究 ... [详细]
  • 为了提升学习效率和游戏体验,计划购买一台约5000元的笔记本电脑,主要运行Windows XP系统,外观设计不是重点,但希望配备能够流畅运行《魔兽世界》的显卡,如NVIDIA GeForce 3470或9300系列。处理器方面,希望能选择45纳米工艺的产品。 ... [详细]
author-avatar
小樣兒靠邊詀_853
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有