使用 Node.js 开发一个简单的 web 服务器响应 HTTP get 请求

简介: 使用 Node.js 开发一个简单的 web 服务器响应 HTTP get 请求

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 来简化路由管理和中间件处理,提升开发效率和项目的可维护性。

相关文章
|
3天前
|
JavaScript 前端开发 安全
怎样用Node.js搭建web服务器
本文探讨了如何使用Node.js构建高效的HTTP服务器。首先,介绍了HTTP常见请求方法,如GET、POST、PUT等。接着,展示了如何使用Node.js的`http`模块创建服务器,并根据请求方法进行不同处理,如判断GET和POST请求,以及获取GET请求参数和处理POST请求数据。最后,讨论了服务器代码的模块化管理,包括路由管理和业务逻辑拆分,以提升代码的维护性和扩展性。通过本文,读者可以掌握基础的Node.js服务器开发及模块化设计技巧。
|
4天前
|
XML 网络协议 Java
JavaWeb -- HTTP -- WEB服务器TOMCAT
JavaWeb -- HTTP -- WEB服务器TOMCAT
|
11天前
|
云安全 监控 安全
WEB应用防火墙的作用,云服务器有这个功能吗
Web应用防火墙(Web Application Firewall,简称WAF)是一种安全产品,旨在保护Web应用程序免受网络攻击和恶意数据流量的影响。
|
13天前
|
Apache Windows
windows 一键安装apache服务器 windows傻瓜式安装apache2 web服务器管理软件
windows 一键安装apache服务器 windows傻瓜式安装apache2 web服务器管理软件
|
13天前
|
Windows
win10家庭版安装iis 微软web服务器 windows安装IIS web服务器
win10家庭版安装iis 微软web服务器 windows安装IIS web服务器
|
14天前
|
Java 关系型数据库 MySQL
【JavaEE进阶】部署Web项目到Linux服务器
【JavaEE进阶】部署Web项目到Linux服务器
|
15天前
|
Java 开发者
JSP 教程 之 JSP 服务器响应 4
JSP教程讲解了如何使用HttpServletResponse对象响应客户端。示例代码展示了一个每5秒自动刷新并显示当前时间的页面。通过response对象设置HTTP响应头,包括刷新间隔(setIntHeader("Refresh", 5))和时间信息。当访问保存为main.jsp的这个页面时,浏览器会持续更新显示系统时间。
22 2
|
16天前
|
缓存 Java 开发者
JSP 教程 之 JSP 服务器响应 3
JSP教程讲解了HttpServletResponse类如何处理服务器响应。response对象用于创建HTTP信息头,支持添加cookie、设置HTTP状态码等。方法包括编码URL、检查响应头、添加响应头、发送错误或重定向、设置缓冲区大小及编码集等。通过这些方法,开发者能精细控制客户端的响应内容和行为。
23 4
|
16天前
|
存储 缓存 安全
JSP 教程 之 JSP 服务器响应 2
JSP的Response对象负责将处理结果返回给客户端,包括设置HTTP状态、发送数据如Cookie和HTTP头信息。常见的HTTP响应头如Allow指定支持的请求方法,Cache-Control控制缓存策略,Content-Type定义文档类型,Expires指示过期时间,Set-Cookie用于设置cookie。这些头信息在web编程中扮演重要角色。
23 4
|
16天前
|
Java 容器
JSP 教程 之 JSP 服务器响应 1
JSP教程聚焦服务器响应:Response对象负责将处理结果回传客户端,设置HTTP状态及发送数据,如Cookie和头部信息。示例响应包括HTTP状态行(如HTTP/1.1 200 OK)、Content-Type(如text/html)及其他头部,接着是HTML文档结构。
17 3

热门文章

最新文章