Node.js 中的 HTTP 服务器

发布于 2023-01-04 22:49:14 字数 1720 浏览 74 评论 0

Node.js 有一个内置的 http.Server。 以下是如何启动一个 HTTP 服务器来响应每个带有字符串 Hello, World 的请求:

const http = require('http');

// You usually don't call `new http.Server()`, the `http.createServer()`
// function creates a new `Server` instance for you.
const server = http.createServer((req, res) => res.end('Hello, World!'));

server instanceof http.Server; // true
await server.listen(3000);

Node.js 的基于事件循环的并发使得测试 HTTP 服务器变得容易。 例如,您可以启动一个服务器,然后在 的情况下使用 Axios HTTP 库向该服务器发出 HTTP 请求 ,没有任何线程

const http = require('http');

const server = http.createServer((req, res) => res.end('Hello, World!'));

server instanceof http.Server; // true
await server.listen(3000);

// Make an HTTP request to the server
const axios = require('axios');
const res = await axios.get('http://localhost:3000');
res.data; // 'Hello, World'

Express

大多数应用程序使用 HTTP 框架而不是使用 http.Server 直接编写。 http.createServer() function 只接受一个函数作为参数,因此,如果你直接使用 Node 的 HTTP 服务器,你将负责实现路由、HTTP 主体解析等。像 Express 这样的框架负责路由和主体解析,并提供组织模式你的代码。

但是,大多数框架使用 http.Server 在引擎盖下,让您访问原始的 Node.js HTTP 服务器。 例如,Express  listen() 函数返回一个实例 http.Server Class:

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

const server = app.listen(3000);
server instanceof require('http').Server; // true

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据

关于作者

0 文章
0 评论
752 人气
更多

推荐作者

lorenzathorton8

文章 0 评论 0

Zero

文章 0 评论 0

萧瑟寒风

文章 0 评论 0

mylayout

文章 0 评论 0

tkewei

文章 0 评论 0

17818769742

文章 0 评论 0

    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文