1. 什么是 Express
官方:Express 是基于 Node.js 平台,快速、开放、极简的 Web 开发框架
通俗:Express的作用和Node.js内置的 http 模块类似,专门用来创建 Web 服务器的
本质:是一个 npm 上的包,提供了快捷创建服务器方法
中文官网:http://www.expressjs.com.cn/
为什么用:http模块和可以创建服务器,但是复杂效率低,Express是基于http封装来的,提高开发效率
能做什么:
对于前端来说,最常见的两种服务器:Web网站服务器、API接口服务器
使用 Express 可以方便、快速的创建 Web 网站服务器或者 API 接口服务器
2. Express 的基本使用
1. 安装
npm i express@4.17.1
2. 创建基本的 Web 服务器
const express = require('express')
const app = express()
app.listen(80, () => {
console.log('启动服务器')
})
3. 监听 GET 请求
通过 app.get() 方法监听
// 参数1 客户端请求的URL地址
// 参数2 请求对应的处理函数
// req:请求对象(包含与请求相关的属性与方法)
// res:响应对象(包含与响应相关的属性与方法)
app.get('请求url', function(req, res) {/*处理函数*/})
4. 监听 POST 请求
通过 app.post() 方法监听
// 参数1 客户端请求的URL地址
// 参数2 请求对应的处理函数
// req:请求对象(包含与请求相关的属性与方法)
// res:响应对象(包含与响应相关的属性与方法)
app.post('请求url', function(req, res) {/*处理函数*/}
5. 把内容响应给客户端
通过 res.send() 方法,可以把处理好的内容发给客户端
app.get('/user', (req, res) => {
// 向客户端发送 JSON 对象
res.send({ name: 'Jason', age: 20, gender: '男' })
})
app.post('/user', (req, res) => {
// 向客户端发送文本信息
res.send('请求成功')
})
6. 获取 URL 中携带的查询参数
通过 req.queryr 对象,可以访问到客户端通过查询字符串形式,发送到服务器的参数
app.post('/', (req. res) => {
// req.query 默认是一个空对象
// 客户端使用 ?name=Jason&age=20 这种查询字符串形式 发送到服务器的参数
// 可以通过 req.query 对象访问到:
// req.query.name req.query.age
console.log(req.query)
})
7. 获取 URL 中的动态参数
通过 req.params 对象 可以访问到URL中,通过 : 匹配到的动态参数
app.post('/user/:id', (req, res) => {
// req.params 默认是一个空对象
// 里面存放着通过 : 动态匹配到的参数值
console.log(req.params)
})
3. 托管静态资源
1. express.static()
通过这个函数,可以非常方便的创建一个静态资源服务器
通过如下代码可以将 public 目录下的图片 CSS JS文件对外开放
app.use(express.static('public'))
// 访问 public 目录下的所有文件
// http://localhost:8080/image/1.jpg
// http://localhost:8080/css/style.css
// http://localhost:8080/js/index.js
注意: 存放静态文件的目录名不会出现在 URL 中
2. 托管多个静态资源目录
多次调用 express.static() 函数
app.use(express.static('public'))
app.use(express.static('files'))
访问静态资源文件时,函数会根据目录的添加顺序查找所需文件
3. 挂载路径前缀
希望在托管的静态资源访问路径前挂载路径前缀
app.use('/public', express.static('public'))
// 现在可以通过带有 /public 的前缀访问目录文件
// http://localhost:8080/public/image/1.jpg
// http://localhost:8080/public/css/style.css
// http://localhost:8080/public/js/index.js
4. nodemon
1. 为什么要使用 nodemon
编写 node.js 项目时,如果修改了项目的代码,需要手动的close掉,再重新启动,繁琐
使用 nodemon 工具,能够监听项目文件的变动,自动帮我们重启项目
2. 安装 nodemon
npm i -g nodemon
3. 使用nodemon
使用 nodemon app.js 启动项目,代码被修改后,会被nodemon监听到,从而实现自动重启
nodemon app.js