一. Express 简介
1. 什么是 Express
官方给出的概念:Express 是基于 Node.js 平台,快速、开放、极简的 Web 开发框架。
通俗的理解:Express 的作用和 Node.js 内置的 http 模块类似, 是专门用来创建Web 服务器的。
2. Express 能做什么
对于前端程序员来说,最常见的两种服务器,分别是:
- Web 网站服务器:专门对外提供 Web 网页资源的服务器。
- Api 接口服务器:专门对外提供 API 接口的服务器。
使用 Express,我们可以更方便快捷的创建 Web 网站的服务器和 API 接口的服务器。
二. Express 的基本使用
1. 安装
在项目所处的目录中,运行如下的终端命令,即可将 express 安装到项目中使用:
npm i express@4.17.1 (版本根据项目开发需求来定)
2. 创建基本的 Web 服务器及 get 和 post 的使用示例
// 1.导入 express
const express = require('express')
// 2. 创建 web 服务器
const app = express()
// 3. 启动 web 服务器
app.listen(8080, () => {
console.log('已启动')
})
// 4.监听客户端的 GET 和 POST 请求,并向客户端响应具体的内容
app.get('/user', function (req, res) {
// req:请求对象(包含了与请求相关的属性和方法)
// res:响应对象(包含了与请求相关的属性和方法)
// 调用 express 提供的 res.send() 方法,向客户端响应一个 JSON 对象
res.send({name:'yzh', age:15})
})
app.post('/user', function (req, res) {
// 调用 express 提供的 res.send() 方法,向客户端响应一个 文本字符串
res.send('请求成功')
})
app.get('/', function (req, res) {
// 通过 req.query 可以获取到客户端发送过来的查询参数
// 注意:默认情况下 req.query 是一个空对象
console.log('req.query',req.query)
res.send(req.query)
})
// 注意:这里的 :id 是一个动态的参数
// req.params 是动态匹配到的 URL 参数,默认也是一个空对象
app.get('/user/:id',function (req, res) {
console.log('req.params',req.params)
res.send(req.params)
})
// req.params 多个参数的示例
app.get('/user/:id/:name/:age',function (req, res) {
console.log('req.params',req.params)
res.send(req.params)
})
3. 使用 Express.static 对外提供静态资源示例
注意:Express 在指定的静态目录中查找文件,并对外提供资源的访问路径。因此,
// 导入 express
const express = require('express')
// 创建 web 服务器
const app = express()
// 在这里,调用 express.static() 方法,快速的对外提供静态资源,./files 是要对象提供的文件夹
app.use(express.static('./files'))
// 挂载路径前缀
app.use('/files', express.static('./files'))
// 启动 web 服务器
app.listen(8080, () => {
console.log('已启动')
})
4. nodemon
1. 为什么要使用 nodemon
在编写调试 Node.js 项目的时候,如果修改了项目的代码,则需要频繁的手动 close 掉,然后再重新启动,非常繁琐。现在,我们可以使用 nodemon 这个工具,它能够监听项目文件的变动,当代码被修改后,nodemon 会自动帮我们重启项目,极大方便了开发和调试。
2. 安装 nodemon
在终端中,运行如下命令,即可将 nodemon 安装为全局可用的工具: