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

相关文章
|
5天前
|
JavaScript 前端开发 安全
怎样用Node.js搭建web服务器
本文探讨了如何使用Node.js构建高效的HTTP服务器。首先,介绍了HTTP常见请求方法,如GET、POST、PUT等。接着,展示了如何使用Node.js的`http`模块创建服务器,并根据请求方法进行不同处理,如判断GET和POST请求,以及获取GET请求参数和处理POST请求数据。最后,讨论了服务器代码的模块化管理,包括路由管理和业务逻辑拆分,以提升代码的维护性和扩展性。通过本文,读者可以掌握基础的Node.js服务器开发及模块化设计技巧。
|
6天前
|
XML 网络协议 Java
JavaWeb -- HTTP -- WEB服务器TOMCAT
JavaWeb -- HTTP -- WEB服务器TOMCAT
|
1天前
|
Java 应用服务中间件 程序员
JavaWeb基础第四章(SpringBootWeb工程,HTTP协议与Web服务器-Tomcat)
JavaWeb基础第四章(SpringBootWeb工程,HTTP协议与Web服务器-Tomcat)
|
2天前
|
弹性计算 监控 JavaScript
云服务器 ECS产品使用问题之Node.js项目部署成功后无法通过公网IP+端口号访问,是什么导致的
云服务器ECS(Elastic Compute Service)是各大云服务商阿里云提供的一种基础云计算服务,它允许用户租用云端计算资源来部署和运行各种应用程序。以下是一个关于如何使用ECS产品的综合指南。
|
2天前
|
JavaScript 应用服务中间件 Apache
Node.js Web 模块
Node.js Web 模块
9 2
|
3天前
|
JavaScript 前端开发 算法
Box2D(现在通常称为Box2D.js或者其WebAssembly版本,Emscripten Box2D)是一个流行的2D物理引擎,用于模拟刚体动力学、碰撞检测与响应以及关节约束等物理现象
【6月更文挑战第16天】Box2D.js,基于C++的2D物理引擎,经Emscripten编译为WebAssembly,用于JavaScript游戏中的真实物理模拟,包含碰撞检测和关节约束。它提供高效的碰撞检测,易于扩展和定制物理属性。使用步骤涉及初始化世界、创建刚体、添加碰撞形状、模拟物理及处理碰撞事件。物理引擎虽提升逼真度,但也增加复杂性和性能需求。其他选项如p2.js、matter.js和ammo.js也可供选择。
45 8
|
13天前
|
缓存 JavaScript 前端开发
Nuxt.js实战:Vue.js的服务器端渲染框架
Nuxt.js提供了开发、构建和部署的完整工作流。使用nuxt命令启动开发服务器,nuxt build进行生产构建,nuxt start启动生产服务器
17 0
|
13天前
|
监控 前端开发 JavaScript
JS Navigator.sendBeacon 可靠的、异步地向服务器发送数据
Navigator.sendBeacon 是一个用于发送少量数据到服务器的 API,尤其适用于在页面即将卸载时发送数据,如日志记录、用户行为分析等。 与传统的 AJAX 请求不同,sendBeacon 方法的设计目标是确保数据在页面卸载(例如用户关闭标签页或导航到新页面)时能够可靠地发送。 Navigator.sendBeacon 方法可用于通过 HTTP POST 将少量数据异步传输到 Web 服务器。 它主要用于将统计数据发送到 Web 服务器,同时避免了用传统技术(如:XMLHttpRequest)发送分析数据的一些问题。
21 1
|
17天前
|
Java 开发者
JSP 教程 之 JSP 服务器响应 4
JSP教程讲解了如何使用HttpServletResponse对象响应客户端。示例代码展示了一个每5秒自动刷新并显示当前时间的页面。通过response对象设置HTTP响应头,包括刷新间隔(setIntHeader("Refresh", 5))和时间信息。当访问保存为main.jsp的这个页面时,浏览器会持续更新显示系统时间。
23 2
|
17天前
|
JavaScript Serverless 网络架构
Next.js与SSR:构建高性能服务器渲染应用
创建Next.js项目使用`create-next-app`,每个页面自动支持SSR。动态路由如`pages/posts/[id]`,在`getStaticPaths`和`getServerSideProps`中获取数据。利用静态优化和预渲染提升性能,动态导入减少初始加载时间。使用`next/image`优化图片,自定义服务器增加控制,集成第三方库如Redux。优化SEO,利用i18n支持多语言,使用Serverless模式和Web Workers。项目支持TypeScript,创建`_error.js`处理错误,部署到Vercel并使用工具进行性能监控和优化。
154 4