1. express.static()
const { root } = require('cheerio');
const { dir } = require('console');
const express = require('express');
const app = express();//创建一个以express应用,app实际上是一个函数,用于处理请求的函数
const path = require('path');
const rootPath = path.resolve(__dirname, '../public')
/***
* 发送请求的时,会根据请求的路径,从指定的目录中查找是否存在该文件,如果存在,则相应文件内容,而不再移交给后续的中间件,
* 如果不存在文件,则直接移交给后续的中间件
*/
app.use(express.static(rootPath));
// app.use(express.static(rootPath, {
// index: 'indx.html' //默认访问页面,默认值为index.html,可修改
// }));
// app.use('/static', express.static(rootPath))// 也可以针对访问某个指定api路径,来标识需要 返回静态资源
app.use(require('./errMiddleware')) // 处理所有的错误请求
app.listen(12306, () => {
console.log('server on 12306 has started')
})
- 发送请求的时,会根据请求的路径,从指定的目录中查找是否存在该文件,如果存在,则相应文件内容,而不再移交给后续的中间件,
- 如果不存在文件,则直接移交给后续的中间件
- 默认情况下,如果访问的是一个目录,则会自动寻找目录下面的index.html
2. express.json()
```javascript
const { root } = require(‘cheerio’); const { dir } = require(‘console’); const express = require(‘express’); const app = express();//创建一个以express应用,app实际上是一个函数,用于处理请求的函数 const path = require(‘path’); const rootPath = path.resolve(__dirname, ‘../public’) /*
- 发送请求的时,会根据请求的路径,从指定的目录中查找是否存在该文件,如果存在,则相应文件内容,而不再移交给后续的中间件,
- 如果不存在文件,则直接移交给后续的中间件 */
app.use(express.static(rootPath, { index: ‘index.html’ //默认访问页面,默认值为index.html,可修改 })); // app.use(‘/static’, express.static(rootPath))// 也可以针对访问某个指定api路径,来标识需要 返回静态资源
/*
- 默认res无法解析post请求的参数,也就是请求体
- 使用该中间件后表示,当Content-Type是”application/x-www-form-urlencoded”,使用该中间件处理 / app.use(express.urlencoded({ extended: true })) /**
- 默认res无法解析post请求的参数,也就是请求体
- 使用该中间件后表示,当Content-Type是”application/json”,使用该中间件处理 */ app.use(express.json()) app.post(‘/list’, (req, res) => { console.log(req.body) }) app.use(require(‘./errMiddleware’)) // 处理所有的错误请求 app.listen(12306, () => { console.log(‘server on 12306 has started’) }) ```
- 默认res无法解析post请求的参数,也就是请求体
- 使用该中间件后表示,当Content-Type是”application/json”,使用该中间件处理
- 而不再移交给后续的中间件,
3.express.urlencoded()
```javascript
const { root } = require(‘cheerio’); const { dir } = require(‘console’); const express = require(‘express’); const app = express();//创建一个以express应用,app实际上是一个函数,用于处理请求的函数 const path = require(‘path’); const rootPath = path.resolve(__dirname, ‘../public’) /*
- 发送请求的时,会根据请求的路径,从指定的目录中查找是否存在该文件,如果存在,则相应文件内容,而不再移交给后续的中间件,
- 如果不存在文件,则直接移交给后续的中间件 */
app.use(express.static(rootPath, { index: ‘indx.html’ //默认访问页面,默认值为index.html,可修改 })); // app.use(‘/static’, express.static(rootPath))// 也可以针对访问某个指定api路径,来标识需要 返回静态资源
/*
- 默认req无法解析post请求的参数,也就是请求体
- 使用该中间件后表示,当Content-Type是”application/x-www-form-urlencoded”,使用该中间件处理 */ app.use(express.urlencoded({ extended: true // 早起版本是使用quertString()来解析,现在表示用新的解析方式 })) app.use(require(‘./errMiddleware’)) // 处理所有的错误请求 app.listen(12306, () => { console.log(‘server on 12306 has started’) }) ```
- 默认req无法解析post请求的参数,也就是请求体
- 使用该中间件后表示,当Content-Type是”application/x-www-form-urlencoded”,使用该中间件处理,而不再移交给后续的中间件,
- 该中间件直接返回参数的的对象