Node.js 中 http.createServer API 详解

在 Node.js 的生态系统里,构建网络应用是一项核心任务。而http模块作为 Node.js 内置的处理 HTTP 服务器和客户端功能的模块,为开发者提供了强大的工具。今天,我们来深入探讨http模块中的http.createServer API,它是创建 HTTP 服务器的关键方法。

http.createServer用于创建一个 HTTP 服务器实例。它的语法如下:

js 复制代码
const http = require('http');
const server = http.createServer((req, res) => {
    // 处理请求和响应
});

这里,http.createServer接收一个回调函数作为参数。这个回调函数会在每次接收到 HTTP 请求时被调用,它有两个参数:

  • req:是一个http.IncomingMessage对象,包含了关于请求的所有信息,例如请求方法(req.method)、请求 URL(req.url)等。
  • res:是一个http.ServerResponse对象,用于向客户端发送响应。我们可以通过它设置响应头(res.setHeader)、状态码(res.statusCode)以及发送响应内容(res.end)。

下面通过一个简单的示例来展示如何使用http.createServer创建一个基本的 HTTP 服务器。这个服务器会在接收到任何请求时,返回一个包含 "Hello, World!" 的 HTML 页面。

js 复制代码
const http = require('http');
const server = http.createServer((req, res) => {
    res.writeHead(200, {'Content-Type': 'text/html'});
    res.end('<html><body><h1>Hello, World!</h1></body></html>');
});
const port = 3000;
server.listen(port, () => {
    console.log(`Server running at http://localhost:${port}/`);
});

在上述代码中,我们首先引入了http模块。然后通过http.createServer创建了服务器实例,并在回调函数中设置了响应头为200 OK且内容类型为text/html,最后使用res.end方法发送了包含 "Hello, World!" 的 HTML 内容。服务器监听在端口3000上,当服务器启动成功后,会在控制台打印出服务器运行的地址。

我们还可以根据不同的请求路径返回不同的内容。比如,当请求路径为/about时,返回关于页面的信息:

js 复制代码
const http = require('http');
const server = http.createServer((req, res) => {
    if (req.url === '/') {
        res.writeHead(200, {'Content-Type': 'text/html'});
        res.end('<html><body><h1>Home Page</h1></body></html>');
    } else if (req.url === '/about') {
        res.writeHead(200, {'Content-Type': 'text/html'});
        res.end('<html><body><h1>About Page</h1></body></html>');
    } else {
        res.writeHead(404, {'Content-Type': 'text/html'});
        res.end('<html><body><h1>404 Not Found</h1></body></html>');
    }
});
const port = 3000;
server.listen(port, () => {
    console.log(`Server running at http://localhost:${port}/`);
});

在实际应用中,http.createServer有着广泛的用途。它是构建各种 Web 应用、RESTful API 服务器的基础。通过结合其他模块和技术,我们可以实现功能丰富的网络服务。例如,结合fs模块,我们可以创建一个静态文件服务器,根据请求路径返回相应的静态文件。

总之,http.createServer是 Node.js 中构建 HTTP 服务器的基础 API。深入理解和熟练运用它,对于开发各种类型的网络应用至关重要。无论是小型的个人项目,还是大型的企业级应用,掌握这个 API 都能为我们的开发工作带来极大的便利。

相关推荐
Csvn6 小时前
性能监控
前端
Highcharts.js6 小时前
Highcharts Gantt使用符号的自定义数据标签开发甘特图示例
javascript·甘特图·highcharts·图表开发·实战代码·响应式图表
Csvn6 小时前
构建工具
前端
FRing037 小时前
vue2干货总结3(computed计算属性、watch监听器)
开发语言·前端·vue.js·vue2
kyriewen9 小时前
Skills 榜前 10 我全装了:只有 3 个能直接用
前端·javascript·程序员
IT_陈寒9 小时前
当Java的hashCode遇上Lombok,我的缓存被全清了
前端·人工智能·后端
工控丫丫10 小时前
帆软看板中经常使用的公式函数及经常搭的组合
前端·javascript·数据库
jerrywus10 小时前
我用 GPT-6.1-sol 做了台会讲解的 3D 售货机:60 罐饮料,一口没喝上
前端·agent·claude
孟陬11 小时前
Foobar 技术周刊#159:当看不懂代码时,如何高效排障调试。脏页陷阱:一条只读查询,写入数 TB 数据。推测解码:大模型加速利器
前端·人工智能·后端
Zhao-Jichao12 小时前
AI Prompting for Everyone 课程笔记 - P17 图像生成 Imaging Generation
前端