嘿!如果您是 Node.js 新手,您可能听说过 Express.js——一个用于构建 Web 服务器和 API 的轻量级、快速且灵活的框架。在本指南中,我将引导您了解 Express 的基础知识,并向您展示入门是多么容易。
准备好?让我们开始吧!
首先,让我们安装 Express。确保您的计算机上设置了 Node.js 和 npm(Node 的包管理器)。准备好后,打开终端并运行以下命令:
npm install express
繁荣!您刚刚在项目中安装了 Express。就这么简单。
现在,让我们构建一些东西!下面介绍了如何创建一个超级简单的 Express 服务器,该服务器侦听请求并在有人访问您的网站时以“Hello World”进行响应。
const express = require('express'); // Import Express const app = express(); // Initialize your Express app app.get('/', (req, res) => { // Set up a route for GET requests to the root URL res.send('Hello World'); // Send a response }); app.listen(3000, () => { // Tell the app to listen on port 3000 console.log('Server is running on port 3000'); });
如果您使用 Node app.js 运行此程序并在浏览器中打开 http://localhost:3000,您将看到“Hello World”。启动并运行服务器就是这么简单!
您可能经常听说过“中间件”这个术语。简而言之,中间件只是一个在接收请求和发送响应之间执行的函数。
我们看一个简单的例子:
app.use((req, res, next) => { console.log('Request received'); next(); // Moves to the next middleware or route });
在这种情况下,每次发出请求时,都会将“Request returned”记录到控制台。 next() 函数在这里至关重要,因为它允许请求继续到下一个中间件函数或路由处理程序。如果没有它,请求将停止,并且不会发送响应。
如果您有兴趣详细了解中间件的工作原理,请查看Understanding Middleware in Express.js with Node.js。它涵盖了不同类型的中间件,例如路由器级中间件和错误处理中间件。
路由是您在应用程序中设置不同 URL 的方式。您已经看到了根 (/) 路径的基本路由,但您还可以处理其他 HTTP 方法,例如 POST,以处理表单提交或数据更新。
app.post('/submit', (req, res) => { res.send('Form submitted!'); });
现在,当用户向 /submit 提交表单时,此路由将处理它。您可以根据需要创建任意数量的路线 - Express 让一切变得简单!
如果您想提供图像、CSS 文件或其他静态资源怎么办?快递已满足您!只需将这些文件放入一个文件夹(例如 public)中,然后告诉 Express 在哪里可以找到它们:
app.use(express.static('public'));
现在,公共文件夹中的任何文件(例如 style.css 或图像)都可以通过浏览器直接访问。
在现代应用程序中,您经常需要处理 JSON 数据——可能来自表单或 API 请求。 Express 让这变得超级简单:
app.use(express.json()); // Add this middleware to parse JSON app.post('/data', (req, res) => { console.log(req.body); // Access the parsed JSON data res.send('Data received!'); });
现在,当带有 JSON 数据的 POST 请求发送到 /data 时,Express 会自动解析 JSON,您可以在 req.body 中访问它。很简单吧?
这就是 Express.js 的快速简单介绍!只需几行代码,您就学会了如何:
Express 是一个功能强大的框架,使构建 Web 服务器和 API 变得有趣而简单。当您变得更加熟悉时,您可以开始探索更高级的功能,例如路由器、错误处理,甚至与数据库集成。
我希望本指南能帮助您开始使用 Express!不断尝试,不知不觉中,您就会像专业人士一样构建出色的网络应用程序。
编码愉快!
免责声明: 提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发到邮箱:[email protected] 我们会第一时间内为您处理。
Copyright© 2022 湘ICP备2022001581号-3