목차
http 모듈
createServer 方法
listen 方法
总结
createServer 메소드
청취 방법
요약🎜🎜http 모듈의 기본 사용법을 소개했는데, 주로 createServer를 사용하여 서비스를 생성한 후 listen 메소드를 호출하여 서비스를 시작하고 연결을 수신합니다. createServer는 특정 요청을 구체적으로 처리하기 위한 콜백 함수를 수신합니다. 웹 서비스 작성에서는 주로 콜백 함수의 두 가지 매개변수인 요청응답을 사용합니다. 다음에서 자세히 소개하겠습니다. 🎜🎜노드 관련 지식을 더 보려면 🎜nodejs 튜토리얼🎜을 방문하세요! 🎜
웹 프론트엔드 JS 튜토리얼 Node http 모듈 학습: 기본 사용법에 대해 이야기

Node http 모듈 학습: 기본 사용법에 대해 이야기

Feb 03, 2023 pm 06:32 PM
node http 모듈

이 기사에서는 Node.js http 모듈을 소개하고 createServer 및 Listen 메소드를 소개하겠습니다.

Node http 모듈 학습: 기본 사용법에 대해 이야기

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,就能看到以下内容:

Node http 모듈 학습: 기본 사용법에 대해 이야기

到这里,只需件简简单单的 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(&#39;服务器启动成功:http://localhost:3000&#39;)
})
로그인 후 복사

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

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

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

server.listen(() => {
    const port = server.address().port
    console.log(port)
    console.log(&#39;服务器启动成功:http://localhost:&#39;, port)
})
로그인 후 복사

试一下:

Node http 모듈 학습: 기본 사용법에 대해 이야기

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

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

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

server.listen(3000, &#39;localhost&#39;, () => {
    console.log(&#39;服务器启动成功:http://localhost:&#39;, port)
})
로그인 후 복사

总结

我们介绍了 http 模块的基本用法,主要使用 createServer 来创建服务,再调用 listen 方法来启动服务,监听连接。createServer 接收回调函数用来具体处理某一个请求,编写 web 服务主要就是利用回调函数的两个参数 requestresponse

가장 간단한 웹 서비스를 만드는 데는 몇 줄의 코드만 있으면 됩니다. 새 index.js 파일을 생성하고 다음 내용을 입력합니다:

rrreee 그런 다음 명령줄 도구를 열고 node 명령을 사용하여 파일을 실행합니다: rrreee

The 명령줄 도구는 :🎜rrreee🎜브라우저를 열고 http://localhost:3000을 방문하면 다음 내용을 볼 수 있습니다:🎜🎜Node http 모듈 학습: 기본 사용법에 대해 이야기🎜🎜이 시점에서 단 6줄의 코드만으로 웹 서비스가 생성됩니다. [권장 관련 튜토리얼: nodejs 동영상 튜토리얼🎜, 프로그래밍 교육🎜]🎜

createServer 메소드

🎜 보시다시피 Web 서비스의 핵심 메소드는 createServer 메소드입니다. 🎜🎜콜백 함수를 수신하고 콜백 매개변수는 다음과 같은 두 개의 매개변수를 수신합니다. 🎜
  • 요청 객체: 이 요청에서 클라이언트가 전달하는 정보를 포함하는 HTTP 요청 객체를 나타냅니다
  • 응답 개체: 클라이언트에 응답 정보를 설정하는 데 사용되는 HTTP 응답 개체를 나타냅니다.
🎜이 콜백 함수는 http를 처리하는 것입니다. 요청. http 응답을 설정하는 주요 장소입니다. 따라서 웹 서비스를 작성하는 것은 실제로 이 함수에서 요청 및 응답 내용을 지속적으로 처리하는 것입니다. 이는 HTTP 프로토콜 자체의 요청-응답 모델에 의해서도 결정됩니다. 물론 실제 개발에서는 이렇게 혼합된 방식으로 작성할 수 없습니다. 우리 모두는 매우 합리적인 미들웨어 메커니즘과 계층화 기능을 갖춘 프레임워크를 사용합니다. 🎜

청취 방법

🎜우리 모두는 TCP 프로토콜이 HTTP 프로토콜의 기본 프로토콜이고 모든 HTTP 요청 데이터가 TCP를 사용하여 전송된다는 것을 알고 있습니다. HTTP 요청을 보내려면 먼저 TCP 연결이 설정되어야 합니다. 🎜🎜Node에서 HTTP 서비스를 생성할 때도 마찬가지입니다. createServer 메소드가 실행된 후 Server 클래스의 인스턴스가 생성됩니다. Server 클래스는 다른 내장 모듈 net Server 클래스에는 listen 메서드가 있습니다. 다음은 관계를 이해하기 위한 관련 유형 선언입니다. 🎜rrreee🎜따라서 createServer 메소드를 통해 서비스를 생성한 후 listen 메소드를 다시 호출하여 서비스를 시작하고 연결을 수신합니다. 🎜🎜여러 오버로드가 있습니다. 가장 일반적으로 사용되는 것은 시작이 성공한 후 콜백 함수를 실행하는 것입니다. 🎜rrreee🎜예를 들어 포트가 사용 중일 때 서비스가 시작되지 않으면 오류는 콘솔에 직접 보고됩니다. 그런 다음 후속 콜백 함수를 실행합니다. 🎜🎜많이 사용되지 않는 다른 두 가지 오버로드를 소개합니다. 🎜🎜첫 번째는 포트 번호를 지정하지 않는 것입니다. 이때 운영체제는 사용 가능한 포트 번호를 무작위로 할당합니다. 서비스가 성공적으로 시작된 후 server.address().port 속성을 ​​통해 할당된 포트 번호를 얻을 수 있습니다: 🎜rrreee🎜 사용해 보세요: 🎜🎜Node http 모듈 학습: 기본 사용법에 대해 이야기🎜🎜첫 번째는 모니터링할 호스트 이름을 지정하는 것입니다. . 🎜🎜host가 지정되지 않은 경우 기본값은 0.0.0.0(IPv4) 또는 ::(IPv6)입니다. 지원 모든 호스트에서 네트워크 액세스. 🎜🎜locolhost 또는 127.0.0.1로 설정하면 자신의 호스트에서만 접근할 수 있습니다. 🎜rrreee

요약🎜🎜http 모듈의 기본 사용법을 소개했는데, 주로 createServer를 사용하여 서비스를 생성한 후 listen 메소드를 호출하여 서비스를 시작하고 연결을 수신합니다. createServer는 특정 요청을 구체적으로 처리하기 위한 콜백 함수를 수신합니다. 웹 서비스 작성에서는 주로 콜백 함수의 두 가지 매개변수인 요청응답을 사용합니다. 다음에서 자세히 소개하겠습니다. 🎜🎜노드 관련 지식을 더 보려면 🎜nodejs 튜토리얼🎜을 방문하세요! 🎜

위 내용은 Node http 모듈 학습: 기본 사용법에 대해 이야기의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

AI Hentai Generator

AI Hentai Generator

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

뜨거운 도구

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전

SublimeText3 중국어 버전

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

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

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

nvm에서 노드를 삭제하는 방법 nvm에서 노드를 삭제하는 방법 Dec 29, 2022 am 10:07 AM

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

Express를 사용하여 노드 프로젝트에서 파일 업로드를 처리하는 방법 Express를 사용하여 노드 프로젝트에서 파일 업로드를 처리하는 방법 Mar 28, 2023 pm 07:28 PM

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

Node 서비스의 Docker 미러링을 수행하는 방법은 무엇입니까? 극한 최적화에 대한 자세한 설명 Node 서비스의 Docker 미러링을 수행하는 방법은 무엇입니까? 극한 최적화에 대한 자세한 설명 Oct 19, 2022 pm 07:38 PM

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

Node의 프로세스 관리 도구 'pm2”에 대한 심층 분석 Node의 프로세스 관리 도구 'pm2”에 대한 심층 분석 Apr 03, 2023 pm 06:02 PM

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

PI 노드 교육 : PI 노드 란 무엇입니까? Pi 노드를 설치하고 설정하는 방법은 무엇입니까? PI 노드 교육 : PI 노드 란 무엇입니까? Pi 노드를 설치하고 설정하는 방법은 무엇입니까? Mar 05, 2025 pm 05:57 PM

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

pkg를 사용하여 Node.js 프로젝트를 실행 파일로 패키징하는 방법에 대해 이야기해 보겠습니다. pkg를 사용하여 Node.js 프로젝트를 실행 파일로 패키징하는 방법에 대해 이야기해 보겠습니다. Dec 02, 2022 pm 09:06 PM

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

npm node gyp가 실패하는 경우 수행할 작업 npm node gyp가 실패하는 경우 수행할 작업 Dec 29, 2022 pm 02:42 PM

"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를 사용한 토큰 기반 인증 Angular 및 Node를 사용한 토큰 기반 인증 Sep 01, 2023 pm 02:01 PM

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

See all articles