node.js中的Express-路由-express中间件

node.js中的二、路由 三.中间件 2.全局生效的中间件3.中间件的作用4.定义多个全局中间件5.局部生效的中间件6.定义多个局部中间件7.中间件的使用注意项8.中间件的分类四、使用写接口 4.代码实现
一.用来干啥的?1.安装
npm i express@4.17.1
2.创建基本的web服务器
安装后创建基本的Web服务器,调用()即可创建一个服务器实例
//1.导入expressconst express = require('express')//2.创建web服务器const app = express()//3.调用app.listen(端口号,启动成功后的回调函数),启动服务器app.listen(8080, () => {console.log('express server running at http://127.0.0.1');})
3.监听GET和POST请求,send()方法
//1.导入expressconst express = require('express')//2.创建web服务器const app = express()//3.监听客户端的GET和POST请求,并向客户端响应具体的内容app.get('/user', (req, res) => {//调用express提供的res.send方法,向客户端响应一个JSON对象res.send({ name: 'zs', age: '20', gender: '男' })})app.post('/user', (req, res) => {//调用express提供的res.send方法,向客户端响应一个字符串res.send('请求成功')})//4.调用app.listen(端口号,启动成功后的回调函数),启动服务器app.listen(8080, () => {console.log('express server running at http://127.0.0.1');})
4.通过req.qurey对象获取URL中携带的查询参数
可以访问到客户端通过查询字符串的形式,发送到服务器的参数
‘/user/:id’,冒号是固定写法,冒号后面的可以自由写,而且可以有多个动态参数,‘/user/:id/:name’
【node.js中的Express-路由-express中间件】//注意这里的:id是一个动态的参数app.get('/user/:id', (req, res) => {console.log(req.params);//req.params是动态匹配到的URL参数,默认也是一个空对象res.send(req.params)})
5.对外提供静态资源
安装
npm install -g nodemon
二、路由 1.路由概述
在中,路由指的是客户端请求与服务器处理函数之间的映射关系
每当一个请求到达服务器之后,需要先经过路由匹配,只有匹配成功,才会调用相应处理函数 。
匹配的时候,会按照陆游的顺序进行匹配,若请求类型和请求的url同时匹配成功,则会将这次请求,转交给对应的函数进行处理
const express = require('express')const app = express()//挂载路由app.get('/', (req, res) => {res.send('hello')})app.post('/', (req, res) => {res.send('post')})app.listen(8000, () => {console.log('http://127.0.0.1');})
2.路由模块化
为了方便对路由进行模块化的管理,不建议直接将路由挂载到app上,而是推荐将路由抽离为单独的模块 。
代码如下:
//这是路由模块//1.导入expresconst express = require('express')//2.创建路由对象const router = express.Router()//3.挂载具体的路由router.get('/user/list', (req, res) => {res.send('get user list')})router.post('/user/add', (req, res) => {res.send('add new user')})//导出路由对象module.exports = router
注册路由模块:app.use()函数的作用,是注册全局中间件
const express = require('express')const app = express()//挂载路由//1.导入路由模块const router = require('./模块化路由')//2.注册路由模块app.use(router)app.listen(8000, () => {console.log('http://127.0.0.1');})