上一篇教程中,我们学习了 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中文网其他相关文章!

JavaScript起源于1995年,由布兰登·艾克创造,实现语言为C语言。1.C语言为JavaScript提供了高性能和系统级编程能力。2.JavaScript的内存管理和性能优化依赖于C语言。3.C语言的跨平台特性帮助JavaScript在不同操作系统上高效运行。

JavaScript在浏览器和Node.js环境中运行,依赖JavaScript引擎解析和执行代码。1)解析阶段生成抽象语法树(AST);2)编译阶段将AST转换为字节码或机器码;3)执行阶段执行编译后的代码。

Python和JavaScript的未来趋势包括:1.Python将巩固在科学计算和AI领域的地位,2.JavaScript将推动Web技术发展,3.跨平台开发将成为热门,4.性能优化将是重点。两者都将继续在各自领域扩展应用场景,并在性能上有更多突破。

Python和JavaScript在开发环境上的选择都很重要。1)Python的开发环境包括PyCharm、JupyterNotebook和Anaconda,适合数据科学和快速原型开发。2)JavaScript的开发环境包括Node.js、VSCode和Webpack,适用于前端和后端开发。根据项目需求选择合适的工具可以提高开发效率和项目成功率。

是的,JavaScript的引擎核心是用C语言编写的。1)C语言提供了高效性能和底层控制,适合JavaScript引擎的开发。2)以V8引擎为例,其核心用C 编写,结合了C的效率和面向对象特性。3)JavaScript引擎的工作原理包括解析、编译和执行,C语言在这些过程中发挥关键作用。

JavaScript是现代网站的核心,因为它增强了网页的交互性和动态性。1)它允许在不刷新页面的情况下改变内容,2)通过DOMAPI操作网页,3)支持复杂的交互效果如动画和拖放,4)优化性能和最佳实践提高用户体验。

C 和JavaScript通过WebAssembly实现互操作性。1)C 代码编译成WebAssembly模块,引入到JavaScript环境中,增强计算能力。2)在游戏开发中,C 处理物理引擎和图形渲染,JavaScript负责游戏逻辑和用户界面。

JavaScript在网站、移动应用、桌面应用和服务器端编程中均有广泛应用。1)在网站开发中,JavaScript与HTML、CSS一起操作DOM,实现动态效果,并支持如jQuery、React等框架。2)通过ReactNative和Ionic,JavaScript用于开发跨平台移动应用。3)Electron框架使JavaScript能构建桌面应用。4)Node.js让JavaScript在服务器端运行,支持高并发请求。


热AI工具

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

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

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

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

热门文章

热工具

适用于 Eclipse 的 SAP NetWeaver 服务器适配器
将Eclipse与SAP NetWeaver应用服务器集成。

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

Atom编辑器mac版下载
最流行的的开源编辑器

ZendStudio 13.5.1 Mac
功能强大的PHP集成开发环境

mPDF
mPDF是一个PHP库,可以从UTF-8编码的HTML生成PDF文件。原作者Ian Back编写mPDF以从他的网站上“即时”输出PDF文件,并处理不同的语言。与原始脚本如HTML2FPDF相比,它的速度较慢,并且在使用Unicode字体时生成的文件较大,但支持CSS样式等,并进行了大量增强。支持几乎所有语言,包括RTL(阿拉伯语和希伯来语)和CJK(中日韩)。支持嵌套的块级元素(如P、DIV),