Node http 모듈 학습: 기본 사용법에 대해 이야기
이 기사에서는 Node.js http 모듈을 소개하고 createServer 및 Listen 메소드를 소개하겠습니다.
http 모듈
Node.js를 사용하여 주로 내장된 http
모듈에 의존하는 웹 서비스를 만듭니다. 클래식 express.js 및 koa.js 프레임워크는 모두 http
모듈을 핵심으로 하여 다양한 수준으로 캡슐화됩니다. 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,就能看到以下内容:
到这里,只需件简简单单的 6 行代码,就创建了一个 web 服务。【相关教程推荐:nodejs视频教程、编程教学】
createServer 方法
可以看到,创建 Web 服务的核心方法就是 createServer
方法。
它接收一个回调函数,回调参数接收两个参数,分别是 :
- request 对象:表示 HTTP 请求对象,里面包含了客户端本次请求携带的信息
- response 对象:表示 HTTP 响应对象,用于向客户端设置响应的信息
这个回调函数,就是处理 http 请求,设置 http 响应的主要场所。所以,编写 web 服务,其实就是在不停的在这个函数中处理请求和响应内容。这也是基于 HTTP 协议本身的请求-响应模型所决定的。当然,实际开发中肯定不能这么杂糅的写,都是使用框架,那会有很合理的中间件机制和分层。
listen 方法
我们都知道,TCP 协议是 HTTP 协议的底层协议,所有 HTTP 请求的数据都是利用 TCP 传输的。要发送 HTTP 请求,必须先建立 TCP 连接。
Node 中要创建 HTTP 服务也是如此。createServer
方法执行后会创建一个 Server
类的实例,该 Server
类又继承自另一个内置模块 net
中的 Server
类,它身上有一个 listen
方法。下面是相关的类型声明,可以理解这其中的关系。
// net 模块 class Server extends EventEmitter { /** * 启动服务器监听连接。此 Server 可以是 TCP 或 IPC 服务器,具体取决于它所监听的内容。 */ // 有若干重载,这是最常使用的一种方法 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) })
试一下:
一种是指定要监听的主机名。
当不指定 host
时,默认为 0.0.0.0
(IPv4)或者 ::
(IPv6),支持网络中所有的主机进行访问。
如果设置为 locolhost
或者 127.0.0.1
,则只能自己的主机访问。
server.listen(3000, 'localhost', () => { console.log('服务器启动成功:http://localhost:', port) })
总结
我们介绍了 http
模块的基本用法,主要使用 createServer
来创建服务,再调用 listen
方法来启动服务,监听连接。createServer
接收回调函数用来具体处理某一个请求,编写 web 服务主要就是利用回调函数的两个参数 request
和 response
index.js
파일을 생성하고 다음 내용을 입력합니다: rrreee 그런 다음 명령줄 도구를 열고 node
명령을 사용하여 파일을 실행합니다: rrreee
createServer 메소드
🎜 보시다시피 Web 서비스의 핵심 메소드는createServer
메소드입니다. 🎜🎜콜백 함수를 수신하고 콜백 매개변수는 다음과 같은 두 개의 매개변수를 수신합니다. 🎜- 요청 객체: 이 요청에서 클라이언트가 전달하는 정보를 포함하는 HTTP 요청 객체를 나타냅니다
- 응답 개체: 클라이언트에 응답 정보를 설정하는 데 사용되는 HTTP 응답 개체를 나타냅니다.
청취 방법
🎜우리 모두는 TCP 프로토콜이 HTTP 프로토콜의 기본 프로토콜이고 모든 HTTP 요청 데이터가 TCP를 사용하여 전송된다는 것을 알고 있습니다. HTTP 요청을 보내려면 먼저 TCP 연결이 설정되어야 합니다. 🎜🎜Node에서 HTTP 서비스를 생성할 때도 마찬가지입니다.createServer
메소드가 실행된 후 Server
클래스의 인스턴스가 생성됩니다. Server
클래스는 다른 내장 모듈 net
Server
클래스에는 listen
메서드가 있습니다. 다음은 관계를 이해하기 위한 관련 유형 선언입니다. 🎜rrreee🎜따라서 createServer
메소드를 통해 서비스를 생성한 후 listen
메소드를 다시 호출하여 서비스를 시작하고 연결을 수신합니다. 🎜🎜여러 오버로드가 있습니다. 가장 일반적으로 사용되는 것은 시작이 성공한 후 콜백 함수를 실행하는 것입니다. 🎜rrreee🎜예를 들어 포트가 사용 중일 때 서비스가 시작되지 않으면 오류는 콘솔에 직접 보고됩니다. 그런 다음 후속 콜백 함수를 실행합니다. 🎜🎜많이 사용되지 않는 다른 두 가지 오버로드를 소개합니다. 🎜🎜첫 번째는 포트 번호를 지정하지 않는 것입니다. 이때 운영체제는 사용 가능한 포트 번호를 무작위로 할당합니다. 서비스가 성공적으로 시작된 후 server.address().port
속성을 통해 할당된 포트 번호를 얻을 수 있습니다: 🎜rrreee🎜 사용해 보세요: 🎜🎜
host
가 지정되지 않은 경우 기본값은 0.0.0.0
(IPv4) 또는 ::
(IPv6)입니다. 지원 모든 호스트에서 네트워크 액세스. 🎜🎜locolhost
또는 127.0.0.1
로 설정하면 자신의 호스트에서만 접근할 수 있습니다. 🎜rrreee요약🎜🎜http
모듈의 기본 사용법을 소개했는데, 주로 createServer
를 사용하여 서비스를 생성한 후 listen 메소드를 호출하여 서비스를 시작하고 연결을 수신합니다. createServer
는 특정 요청을 구체적으로 처리하기 위한 콜백 함수를 수신합니다. 웹 서비스 작성에서는 주로 콜백 함수의 두 가지 매개변수인 요청
및 응답
을 사용합니다. 다음에서 자세히 소개하겠습니다. 🎜🎜노드 관련 지식을 더 보려면 🎜nodejs 튜토리얼🎜을 방문하세요! 🎜
위 내용은 Node http 모듈 학습: 기본 사용법에 대해 이야기의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

뜨거운 주제











nvm을 사용하여 노드를 삭제하는 방법: 1. "nvm-setup.zip"을 다운로드하여 C 드라이브에 설치합니다. 2. "nvm -v" 명령을 통해 환경 변수를 구성하고 버전 번호를 확인합니다. install" 명령 노드 설치; 4. "nvm uninstall" 명령을 통해 설치된 노드를 삭제합니다.

파일 업로드를 처리하는 방법은 무엇입니까? 다음 글에서는 Express를 사용하여 노드 프로젝트에서 파일 업로드를 처리하는 방법을 소개하겠습니다. 도움이 되길 바랍니다.

이 기간 동안 저는 Tencent 문서의 모든 카테고리에 공통되는 HTML 동적 서비스를 개발 중입니다. 다양한 카테고리에 대한 액세스 생성 및 배포를 촉진하고 클라우드로 이동하는 추세에 부응하기 위해. Docker를 사용하여 서비스 콘텐츠를 수정하고 제품 버전을 균일하게 관리합니다. 이 글에서는 제가 Docker를 서비스하면서 쌓은 최적화 경험을 여러분의 참고용으로 공유하겠습니다.

이 기사에서는 Node의 프로세스 관리 도구인 "pm2"를 공유하고 pm2가 필요한 이유, pm2 설치 및 사용 방법에 대해 설명합니다. 모두에게 도움이 되기를 바랍니다!

Pinetwork 노드에 대한 자세한 설명 및 설치 안내서이 기사에서는 Pinetwork Ecosystem을 자세히 소개합니다. Pi 노드, Pinetwork 생태계의 주요 역할을 수행하고 설치 및 구성을위한 전체 단계를 제공합니다. Pinetwork 블록 체인 테스트 네트워크가 출시 된 후, PI 노드는 다가오는 주요 네트워크 릴리스를 준비하여 테스트에 적극적으로 참여하는 많은 개척자들의 중요한 부분이되었습니다. 아직 Pinetwork를 모른다면 Picoin이 무엇인지 참조하십시오. 리스팅 가격은 얼마입니까? PI 사용, 광업 및 보안 분석. Pinetwork 란 무엇입니까? Pinetwork 프로젝트는 2019 년에 시작되었으며 독점적 인 Cryptocurrency Pi Coin을 소유하고 있습니다. 이 프로젝트는 모든 사람이 참여할 수있는 사람을 만드는 것을 목표로합니다.

nodejs 실행 파일을 pkg로 패키징하는 방법은 무엇입니까? 다음 기사에서는 pkg를 사용하여 Node 프로젝트를 실행 파일로 패키징하는 방법을 소개합니다. 도움이 되기를 바랍니다.

"node-gyp.js"와 "Node.js"의 버전이 일치하지 않아 npm node gyp가 실패했습니다. 해결 방법: 1. "npm 캐시 clean -f"를 통해 노드 캐시를 지웁니다. 2. "npm install - g n" n 모듈을 설치합니다. 3. "n v12.21.0" 명령을 통해 "node v12.21.0" 버전을 설치합니다.

인증은 모든 웹 애플리케이션에서 가장 중요한 부분 중 하나입니다. 이 튜토리얼에서는 토큰 기반 인증 시스템과 기존 로그인 시스템과의 차이점에 대해 설명합니다. 이 튜토리얼이 끝나면 Angular와 Node.js로 작성된 완벽하게 작동하는 데모를 볼 수 있습니다. 기존 인증 시스템 토큰 기반 인증 시스템으로 넘어가기 전에 기존 인증 시스템을 살펴보겠습니다. 사용자는 로그인 양식에 사용자 이름과 비밀번호를 입력하고 로그인을 클릭합니다. 요청한 후 데이터베이스를 쿼리하여 백엔드에서 사용자를 인증합니다. 요청이 유효하면 데이터베이스에서 얻은 사용자 정보를 이용하여 세션을 생성하고, 세션 정보를 응답 헤더에 반환하여 브라우저에 세션 ID를 저장한다. 다음과 같은 애플리케이션에 대한 액세스를 제공합니다.
