- express 官网:https://expressjs.com/
- express npm:https://www.npmjs.com/package/express
- Express.js ,通常简称为 Express
- express 是 Node.js 的一个流行框架,用于构建 Web 服务和应用程序
- express 为构建 Web 应用和 API 提供了一组强大的功能和中间件,同时保持简洁和灵活
- Express 是 Node.js 社区中的一个关键组成部分,为开发者提供了构建现代 Web 应用和 API 的必要工具
- Express 被描述为一个 “快速、无主见、微型” 的 Web 框架
- Express 不像一些其他框架那样“主见强烈”。它不强制你使用特定的目录结构或编程模式,这使得你可以根据项目的需要来决定如何组织代码
- Express 是 Node.js 生态系统中最流行的 Web 框架
- 由于 Express 流行度,有大量的第三方中间件和扩展可用,这使得开发更加迅速和简单
- Express 经常与其他技术如 MongoDB 和 Node.js 一起被称为 MEN 栈
- Express 提供了简单的方法来定义 HTTP 路由,即响应特定的 HTTP 请求(如 GET、POST 等)
- Express 使用中间件的概念,它是一种功能模块,可以在请求被最终处理之前拦截、处理或修改它
- 虽然 Express 本身没有强制使用特定的模板引擎,但它允许你集成任何模板引擎(如 Pug、EJS 等)来渲染动态 HTML 内容
- Express 提供了一组简单的 API 来发送响应、管理 cookies、处理文件上传等
- 由于 Express 在 Node.js 上运行,Express 能够提供出色的并发性和性能
- Express 框架建立在 Nodejs 内置的 Http 模块上,并对 Http 模块再包装,从而实际 Web 请求处理的功能
- 对于熟悉 Node.js 的开发者来说,Express 的学习曲线相对较为平缓
- Express 常用于构建 RESTful 服务
- Express 可以与前端框架(如 Angular、React 或 Vue)结合,构建完整的单页面应用
- Express 可用于实现传统的基于服务器的 Web 应用,包括渲染动态 HTML 内容
- Express 结合 Socket.io 等库,可以构建实时的 Web 应用,如聊天室
- 在 Express 4.x 版本中,与 Express 3.x 不同,4.x 版本剔除了大部分内置中间件,让 Express 变得更为轻量化和模块化。大多数中间件现在都被移动到了单独的 npm 包中。moren 👉 Express middleware
express()
express()
用来创建一个 Express 的程序express()
方法是express
模块导出的顶层方法
const express = require('express')
const app = express()
express.static
express.static(<静态资源所在根目录>, [<配置>])
express.static
是 Express 中唯一的内建中间件express.static
是基于 server-static 实现的express.static
负责托管 Express 应用内的静态资源- 配置项:
dotfiles
etag
extensions
index
lastModified
maxAge
redirect
setHeaders
你可以使用以下代码来创建一个简单的 Express 应用,这个应用使用 express.static
中间件来为静态文件提供服务:
const express = require('express');
const path = require('path');
const app = express();
// // 使用 express.static 中间件为 'public' 目录下的静态资源提供服务
app.use(express.static('public'));
app.get('/', (req, res) => {
res.send('Hello, World!');
});
const PORT = 8888;
app.listen(PORT, () => {
console.log(`Server is running on http://localhost:${PORT}`);
});
为了测试上述代码,你可以在应用的根目录下创建一个名为 “public” 的目录,并在其中放入一些静态文件,例如 1.txt
。然后,当你运行上述代码并访问 http://localhost:8888/1.txt 时,你应该能看到 1.txt
的内容