在 Node.js 中,http 模块提供了创建 HTTP 服务器和客户端的功能。以下是一些关于使用 http 模块的基本示例:

1. 创建简单的 HTTP 服务器:
   const http = require('http');

   // 创建 HTTP 服务器
   const server = http.createServer((req, res) => {
     // 处理请求
     res.writeHead(200, {'Content-Type': 'text/plain'});
     res.end('Hello, World!\n');
   });

   // 指定服务器监听的端口
   const port = 3000;
   server.listen(port, () => {
     console.log(`Server running at http://localhost:${port}/`);
   });

   在这个例子中,通过 http.createServer 创建了一个简单的 HTTP 服务器,当有请求时,会发送 "Hello, World!" 到客户端。

2. 处理不同的 HTTP 请求方法:
   const http = require('http');

   const server = http.createServer((req, res) => {
     // 根据请求方法不同处理不同的逻辑
     if (req.method === 'GET') {
       res.writeHead(200, {'Content-Type': 'text/plain'});
       res.end('GET request received.\n');
     } else if (req.method === 'POST') {
       res.writeHead(200, {'Content-Type': 'text/plain'});
       res.end('POST request received.\n');
     } else {
       res.writeHead(405, {'Content-Type': 'text/plain'});
       res.end('Method Not Allowed.\n');
     }
   });

   const port = 3000;
   server.listen(port, () => {
     console.log(`Server running at http://localhost:${port}/`);
   });

   这个例子展示了如何根据不同的 HTTP 请求方法(GET、POST)做出不同的响应。

3. 处理路由和 URL 参数:
   const http = require('http');
   const url = require('url');

   const server = http.createServer((req, res) => {
     // 解析请求的 URL
     const parsedUrl = url.parse(req.url, true);

     // 根据路径路由请求
     if (parsedUrl.pathname === '/hello') {
       res.writeHead(200, {'Content-Type': 'text/plain'});
       res.end(`Hello, ${parsedUrl.query.name || 'Guest'}!\n`);
     } else {
       res.writeHead(404, {'Content-Type': 'text/plain'});
       res.end('Not Found.\n');
     }
   });

   const port = 3000;
   server.listen(port, () => {
     console.log(`Server running at http://localhost:${port}/`);
   });

   在这个例子中,根据请求的路径(/hello)和 URL 参数响应不同的内容。

这些是一些基本的 Node.js HTTP 模块的使用示例。你可以通过这些例子了解如何创建简单的 HTTP 服务器,处理不同的请求方法和路由。在实际应用中,你可能需要使用框架(例如 Express.js)来更方便地构建和管理复杂的 Web 应用。


转载请注明出处:http://www.zyzy.cn/article/detail/4766/Node.js