用node.js和express编码您的第一个API:设置服务器
上一篇教程中,我们学习了 REST 架构、REST 的六大约束、如何理解 HTTP 请求方法及其响应代码,以及 RESTful API 端点的构成。
本教程将为我们的 API 设置一个服务器。您可以使用任何编程语言和服务器软件构建 API,但我们将使用 Node.js(JavaScript 的后端实现)和 Express(一个流行的、极简的 Node 框架)。
安装
我们的首要前提是确保 Node.js 和 npm 在计算机上全局安装。我们可以使用 express-api
测试两者并切换到它。
mkdir express-api && cd express-api
现在我们位于新目录中,我们可以使用安装命令以及每个依赖项来初始化我们的项目,以完成项目的设置。
npm install body-parser express mysql request
这将创建一个 package-lock.json
文件和一个 node_modules
目录,并且我们的 package.json
将更新为如下所示:
{ "name": "express-app", "version": "1.0.0", "description": "", "main": "index.js", "author": "AsyncBanana", "license": "MIT", "dependencies": { "body-parser": "^1.19.2", "express": "^4.17.3", "mysql": "^2.18.1", "node-fetch": "^3.2.0" } }
然后,我们需要添加 "scripts" 对象。"scripts" 对象可以帮助我们运行代码。
{ "name": "express-app", "version": "1.0.0", "description": "", "main": "index.js", "scripts": { "start": "node index.js" }, "author": "AsyncBanana", "license": "MIT", "dependencies": { "body-parser": "^1.19.2", "express": "^4.17.3", "mysql": "^2.18.1", "node-fetch": "^3.2.0" }, "type": "module" }
什么是 ECMAScript 模块?
ECMAScript 模块 (或 ESM) 是一个新的规范,用于连接浏览器和 Node 等环境中的脚本。它取代了旧的规范,例如 Node 默认使用的 CommonJS (CJS)。在本教程中,我们将使用所有 ESM。
设置 HTTP 服务器
在开始设置 Express 服务器之前,我们将使用 Node 内置的 http
模块快速设置一个 HTTP 服务器,设置一个端口号(我选择 createServer()
方法)。
// 使用 Node 的 HTTP 模块构建服务器 import { createServer } from "http"; const port = 3001; const server = createServer();
在介绍性 REST 文章中,我们讨论了关于 HTTP 服务器的请求和响应。我们将设置我们的服务器来处理请求,并在服务器端显示请求的 URL,并在响应端向客户端显示“Hello, server!”消息。
server.on("request", (request, response) => { console.log(`URL: ${request.url}`); response.end("Hello, server!"); });
最后,我们将告诉服务器监听哪个端口,并在出现错误时显示错误。
// 启动服务器 server.listen(port, (error) => { if (error) return console.log(`Error: ${error}`); console.log(`Server is listening on port ${port}`); });
现在,我们可以通过运行我们之前创建的 npm 脚本启动服务器。
npm start
您将在终端中看到此响应:
<code>Server is listening on port 3001</code>
要检查服务器是否正在运行,请访问 https://localhost:3001/hello
,您将看到服务器根目录上的 GET 请求(/
接收请求,我们将显示请求的 URL 和“Hello, Server!”消息)。
app.get("/", (request, response) => { console.log(`URL: ${request.url}`); response.send("Hello, Server!"); });
最后,我们将服务器启动在 listen()
方法上的端口。
const server = app.listen(port, (error) => { if (error) return console.log(`Error: ${error}`); console.log(`Server listening on port ${server.address().port}`); });
现在我们可以对 URL 使用 curl -i
,我们将看到它现在由 Express 提供支持,并且有一些额外的标头,例如 POST
和 body-parser
模块。将 import
语句添加到 index.js
文件的顶部。
import bodyParser from "body-parser"; ...
然后我们将告诉我们的 Express 应用程序使用 curl -i
到服务器,您将看到标头现在返回 GET
路由到根目录(require
中不需要 .js
扩展名。现在我们将移动应用程序的路由器,以便我们可以在 index.js
文件中使用它。
// 导出路由器 export default router;
在 index.js
中,替换路由:
routes(app);
您现在应该能够转到 routes.js
中的 users
变量,其中包含 JSON 格式的一些伪造用户数据。
const users = [ { id: 1, name: "Richard Hendricks", email: "richard@piedpiper.com", }, { id: 2, name: "Bertram Gilfoyle", email: "gilfoyle@piedpiper.com", }, ];
我们将添加另一个 /users
,并通过它发送用户数据。
app.get("/users", (request, response) => { response.send(users); });
重新启动服务器后,您现在可以导航到 http://localhost:3002/users
并查看我们显示的所有数据。
注意:如果您在浏览器上没有 JSON 查看器扩展程序,我强烈建议您下载一个,例如 Chrome 的 JSONVue。这将使数据更容易阅读!
访问我们的 GitHub 仓库以查看本文的完整代码,并将其与您自己的代码进行比较。
结论
在本教程中,我们学习了如何在 Node 中设置内置 HTTP 服务器和 Express 服务器,路由请求和 URL,以及使用 get 请求使用 JSON 数据。
在 RESTful API 系列的最后一期中,我们将把我们的 Express 服务器连接到 MySQL,以便在数据库中创建、查看、更新和删除用户,从而完成 API 的功能。
以上是用node.js和express编码您的第一个API:设置服务器的详细内容。更多信息请关注PHP中文网其他相关文章!

热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

Video Face Swap
使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热门文章

热工具

记事本++7.3.1
好用且免费的代码编辑器

SublimeText3汉化版
中文版,非常好用

禅工作室 13.0.1
功能强大的PHP集成开发环境

Dreamweaver CS6
视觉化网页开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

JavaScript是现代Web开发的基石,它的主要功能包括事件驱动编程、动态内容生成和异步编程。1)事件驱动编程允许网页根据用户操作动态变化。2)动态内容生成使得页面内容可以根据条件调整。3)异步编程确保用户界面不被阻塞。JavaScript广泛应用于网页交互、单页面应用和服务器端开发,极大地提升了用户体验和跨平台开发的灵活性。

Python和JavaScript开发者的薪资没有绝对的高低,具体取决于技能和行业需求。1.Python在数据科学和机器学习领域可能薪资更高。2.JavaScript在前端和全栈开发中需求大,薪资也可观。3.影响因素包括经验、地理位置、公司规模和特定技能。

如何在JavaScript中将具有相同ID的数组元素合并到一个对象中?在处理数据时,我们常常会遇到需要将具有相同ID�...

学习JavaScript不难,但有挑战。1)理解基础概念如变量、数据类型、函数等。2)掌握异步编程,通过事件循环实现。3)使用DOM操作和Promise处理异步请求。4)避免常见错误,使用调试技巧。5)优化性能,遵循最佳实践。

实现视差滚动和元素动画效果的探讨本文将探讨如何实现类似资生堂官网(https://www.shiseido.co.jp/sb/wonderland/)中�...

JavaScript的最新趋势包括TypeScript的崛起、现代框架和库的流行以及WebAssembly的应用。未来前景涵盖更强大的类型系统、服务器端JavaScript的发展、人工智能和机器学习的扩展以及物联网和边缘计算的潜力。

深入探讨console.log输出差异的根源本文将分析一段代码中console.log函数输出结果的差异,并解释其背后的原因。�...
