Express入门
Express.js 是由 TJ Holowaychuk 开发的,现在由 Node.js 基金会和众多开源贡献者维护。它是一个保持最低程度规模的灵活 Node.js Web 应用程序框架,为 Web 和移动应用程序提供一组强大的功能。
一、安装与基本使用
安装Node.js:
- 首先,需要在计算机上安装Node.js。Node.js是一个基于Chrome V8引擎的JavaScript运行环境,它允许JavaScript代码在服务器端运行。
安装Express:
使用npm(Node.js的包管理器)来安装Express。在项目目录下,打开命令行工具,执行以下命令:
1
npm install express
这将下载并安装Express及其依赖项。
创建简单的Express服务器:
创建一个JavaScript文件(例如
app.js
),并在其中编写以下代码:1
2
3
4
5
6
7
8
9
10
11const express = require('express');
const app = express();
const port = 3000;
app.get('/', (req, res) => {
res.send('Hello World!');
});
app.listen(port, () => {
console.log(`Example app listening on port ${port}`);
});这段代码创建了一个Express应用程序,定义了一个简单的路由,当访问根路径时返回“Hello World!”。
启动服务器:
在命令行中,进入项目目录,并执行以下命令来启动应用程序:
1
node app.js
将看到控制台输出的服务器运行消息,并且可以在浏览器中访问
http://localhost:3000
,看到“Hello World!”的消息显示在页面上。
二、核心概念
- 路由:
- 路由是指定义应用程序端点的路径以及处理这些路径上请求的方式。在Express中,可以使用
app.METHOD(PATH, HANDLER)
语法来定义路由,其中METHOD
是HTTP请求方法(如GET、POST等),PATH
是请求的路径,HANDLER
是处理请求的函数。1
2
3app.get('/about', (req, res) => {
res.send('About page');
});
- 路由是指定义应用程序端点的路径以及处理这些路径上请求的方式。在Express中,可以使用
- 中间件:
- 中间件是一种函数,可以访问请求对象(req)、响应对象(res)和应用程序请求-响应周期中的下一个中间件函数。每个中间件函数都有权访问请求对象(req)、响应对象(res),以及管道中下一个中间件函数的引用(next)。中间件常用于执行以下任务:
- 执行任何代码。
- 修改请求和响应对象。
- 结束请求-响应循环。
- 调用堆栈中的下一个中间件函数。
- 如果当前中间件没有结束请求-响应循环,则必须调用
next()
函数以将控制权传递给下一个中间件函数。否则,请求将保持挂起状态。1
2
3
4app.use((req, res, next) => {
console.log('Time: ', Date.now());
next();
});
- 中间件是一种函数,可以访问请求对象(req)、响应对象(res)和应用程序请求-响应周期中的下一个中间件函数。每个中间件函数都有权访问请求对象(req)、响应对象(res),以及管道中下一个中间件函数的引用(next)。中间件常用于执行以下任务:
- 请求和响应对象:
req
(请求对象)包含了与HTTP请求相关的所有信息,如请求头、请求参数等。res
(响应对象)用于发送HTTP响应到客户端,如设置状态码、发送数据等。
三、进一步学习
处理静态文件:
可以使用
express.static
中间件来处理静态文件,如HTML、CSS、JavaScript和图像文件。例如,要将public
目录作为静态文件的根目录,可以使用以下代码:1
app.use(express.static('public'));
构建API:
- Express非常适合构建RESTful API。可以使用不同的HTTP请求方法来处理不同的操作,如GET用于获取数据,POST用于创建数据,PUT用于更新数据,DELETE用于删除数据。
使用模板引擎:
- Express支持多种模板引擎,如Pug、EJS等。可以使用模板引擎来生成动态HTML内容。
1
2
3
4app.set('view engine', 'ejs');
app.get('/', (req, res) => {
res.render('index', { title: 'Hello' });
});
- Express支持多种模板引擎,如Pug、EJS等。可以使用模板引擎来生成动态HTML内容。
错误处理:
Express允许你定义全局错误处理中间件,以捕获和处理应用程序中发生的错误。例如,可以使用以下代码来捕获并处理所有错误:
1
2
3
4app.use((err, req, res, next) => {
console.error(err.stack);
res.status(500).send('Something broke!');
});
四、参考资源
- 官方网站:Express.js的官方网站(https://expressjs.com)提供了详细的文档和示例代码,是学习Express.js的最佳资源。
- 在线教程:可以在各大在线教育平台上找到Express.js的在线教程和视频课程,这些教程通常提供了丰富的实例和案例,有助于更好地理解Express.js的使用。
- 社区支持:Express.js拥有一个活跃的社区,可以在Stack Overflow、GitHub等平台上找到关于Express.js的问题和解决方案。
通过以上入门详解,你可以开始使用Express.js来构建自己的Web应用程序和API。随着对Express.js的深入理解,你将能够掌握更多高级功能和最佳实践,以构建更复杂和高效的Web应用程序。
本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!