在 Node.js 中创建一个基础的 HTTP 服务器并处理 GET 请求是一个常见且实用的任务。以下是一个简单的例子,展示了如何使用 Node.js 的 http
模块来启动一个 HTTP 服务器,监听 8080 端口,并且针对 URL 为 /ping
的 GET 请求,返回请求中所包含的查询参数。
1. 环境搭建
确保你的开发环境中已经安装了 Node.js。可以通过在终端运行 node -v
来检查 Node.js 是否已经安装。如果没有安装,可以从 Node.js 官网 下载并安装。
2. 编写服务器代码
我们将使用 Node.js 内置的 http
模块来创建服务器。以下是完整的代码实现,解析 GET 请求中的查询字符串,并将这些数据以 JSON 格式原样返回。
const http = require(`http`); const url = require(`url`); const server = http.createServer((req, res) => { const parsedUrl = url.parse(req.url, true); // 第二个参数为 true,表示解析查询字符串 // 检查请求方法和 URL 路径 if (req.method === `GET` && parsedUrl.pathname === `/ping`) { // 设置响应头部,内容类型为 JSON res.setHeader(`Content-Type`, `application/json`); // 获取查询参数 const queryParams = parsedUrl.query; // 将查询参数转为 JSON 字符串 const response = JSON.stringify(queryParams); // 返回状态码 200 和查询参数 res.writeHead(200); res.end(response); } else { // 对于非 `/ping` 或非 GET 请求,返回 404 Not Found res.writeHead(404); res.end(`Resource not found`); } }); // 服务器监听 8080 端口 server.listen(8080, () => { console.log(`Server is running on http://localhost:8080/`); });
3. 运行和测试服务器
将上述代码保存为一个文件,例如 server.js
,然后在命令行中运行这个文件:
node server.js
此时,服务器将开始在 8080 端口监听。你可以使用浏览器或者工具如 Postman 来发送请求,例如:
http://localhost:8080/ping?name=John&age=30
你应该会看到浏览器或工具中返回了如下 JSON 数据:
{"name":"John", "age":"30"}
这表示服务器正确解析了 URL 中的查询字符串,并将其原样返回。
4. 扩展和实用性
这个简单的服务器例子虽然实现了基本功能,但在实际应用中,你可能需要考虑更多的功能扩展,比如错误处理、日志记录以及安全性增强等。可以通过引入外部库如 Express.js 来简化路由管理和中间件处理,提升开发效率和项目的可维护性。