文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

Node http模块基本使用方法是什么

2023-07-05 02:26

关注

这篇文章主要介绍了Node http模块基本使用方法是什么的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Node http模块基本使用方法是什么文章都会有所收获,下面我们一起来看看吧。

http 模块

使用 Node.js 中创建 Web 服务,主要依赖内置的 http 模块。经典的 express.js、koa.js 框架都是以 http 模块为核心,进行的不同程度的封装。

创建一个最简单的 Web 服务只需要几行代码。新建一个 index.js 文件,输入以下内容:

// 1.导入 http 模块const http = require('http');// 2. 调用 createServer 方法创建服务const server = http.createServer((request, response) => {    // 3.响应给浏览器的内容response.end('Hello, World'); });// 4.执行 listen 方法,启动服务server.listen(3000, () => {    console.log('服务器启动成功:http://localhost:3000')})

然后打开命令行工具,使用 node 命令执行该文件:

node index.js

命令行工具中会打印:

服务器启动成功:http://localhost:3000

之后打开浏览器,访问 http://localhost:3000,就能看到以下内容:

Node http模块基本使用方法是什么

到这里,只需件简简单单的 6 行代码,就创建了一个 web 服务。

createServer 方法

可以看到,创建 Web 服务的核心方法就是 createServer 方法。

它接收一个回调函数,回调参数接收两个参数,分别是 :

这个回调函数,就是处理 http 请求,设置 http 响应的主要场所。所以,编写 web 服务,其实就是在不停的在这个函数中处理请求和响应内容。这也是基于 HTTP 协议本身的请求-响应模型所决定的。当然,实际开发中肯定不能这么杂糅的写,都是使用框架,那会有很合理的中间件机制和分层。

listen 方法

我们都知道,TCP 协议是 HTTP 协议的底层协议,所有 HTTP 请求的数据都是利用 TCP 传输的。要发送 HTTP 请求,必须先建立 TCP 连接

Node 中要创建 HTTP 服务也是如此。createServer 方法执行后会创建一个 Server 类的实例,该 Server 类又继承自另一个内置模块 net 中的 Server 类,它身上有一个 listen 方法。下面是相关的类型声明,可以理解这其中的关系。

// net 模块class Server extends EventEmitter {                 // 有若干重载,这是最常使用的一种方法        listen(port?: number, hostname?: string, listeningListener?: () => void): this;        listen(port?: number, listeningListener?: () => void): this;}// http 模块import { Server as NetServer } from 'node:net';function createServer<        Request extends typeof IncomingMessage = typeof IncomingMessage,        Response extends typeof ServerResponse = typeof ServerResponse,    >(requestListener?: RequestListener<Request, Response>): Server<Request, Response>;      class Server<        Request extends typeof IncomingMessage = typeof IncomingMessage,        Response extends typeof ServerResponse = typeof ServerResponse,    > extends NetServer {}

所以通过 createServer 方法创建了服务之后,还用再调用 listen 方法,用于启动该服务,监听连接

它有多种重载,最常用的一种就是监听一个端口,在启动成功后,执行回调函数:

server.listen(3000, () => {    console.log('服务器启动成功:http://localhost:3000')})

如果服务启动失败,比如出现端口占用时,控制台中会直接报错,就不再执行后面的回调函数了。

再介绍两种其他的重载,使用的并不多。

一种是不指定端口号,此时操作系统会随机分配一个可用的端口号。在服务启动成功后,可以通过 server.address().port 属性来获得分配的端口号:

server.listen(() => {    const port = server.address().port    console.log(port)    console.log('服务器启动成功:http://localhost:', port)})

试一下:

Node http模块基本使用方法是什么

一种是指定要监听的主机名

当不指定 host 时,默认为 0.0.0.0(IPv4)或者 ::(IPv6),支持网络中所有的主机进行访问

如果设置为 locolhost 或者 127.0.0.1,则只能自己的主机访问。

server.listen(3000, 'localhost', () => {    console.log('服务器启动成功:http://localhost:', port)})

关于“Node http模块基本使用方法是什么”这篇文章的内容就介绍到这里,感谢各位的阅读!相信大家对“Node http模块基本使用方法是什么”知识都有一定的了解,大家如果还想学习更多知识,欢迎关注编程网行业资讯频道。

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     801人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     348人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     311人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     432人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     220人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯