在 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 来简化路由管理和中间件处理,提升开发效率和项目的可维护性。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。