一.express
express是基于node.js平台的极简、灵活的WEB应用开发框架, 点击跳转官方网址
二.初体验
-
初始化项目
npm init
-
命名: express-learn
-
安装express: npm i express
-
创建js文件
//1.导入express模块 const express = require('express') //2.创建应用对象 const app = express() //3.创建路由 app.get('/home',(req,res) => { res.end('hello express') }) //4.监听路由,开启服务 app.listen(3000, ()=>{ console.log('服务已启动,地址为http://127.0.0.1:3000') })
三.express路由
-
路由的组成有
请求方法
,路径
和回调函数
组成app.METHOD(PATH, CALLBACK)
//1.导入express模块 const express = require('express') //2.创建应用对象 const app = express() //3.创建路由 app.get('/home',(req,res) => { res.end('hello express') }) app.post('/login',(req,res)=>{ res.send('登录') }) //匹配所有的请求方法 app.all('/search',(req,res)=>{ res.send('搜索') }) //自定义404路由 app.all('*',(req,res)=>{ res.send('404') }) //4.监听路由,开启服务 app.listen(3000, ()=>{ console.log('服务已启动,地址为http://127.0.0.1:3000') })
四.获取请求报文参数
- express框架兼容原生HTTP模块的获取方式
//1.导入express模块
const express = require('express')
//2.创建应用对象
const app = express()
//3.创建路由
app.get('/home',(req,res)=>{
//原生操作
console.log(req.method)
console.log(req.url)
console.log(req.httpVersion)
// console.log(req.headers)
//express操作
console.log(req.path)//获取路径
console.log(req.query)//查询字符串参数
console.log(req.ip)
console.log(req.get('host'))//获取指定请求头
// console.log(req.)
res.send('hello')
})
//4.监听路由启动服务
app.listen(3000,()=>{
console.log('服务启动成功')
})
- 获取路由参数
获取http:127.0.0.1/123.html中123参数
//1.导入express模块
const express = require('express')
//2.创建应用对象
const app = express()
//3.创建路由
app.get('/:id.html',(req,res)=>{
console.log(req.params) //{ id: '123' }
res.send('hello')
})
//4.监听端口启动服务
app.listen(3000,()=>{
console.log('服务启动成功')
})
五. express响应设置
//1.导入express模块
const express = require('express')
//2.定义应用对象
const app = express()
//3.定义路由
app.get('/home',(req,res)=>{
//1.原http的方法
res.statusCode = 201
res.statusMessage = 'success'
res.setHeader('a','b')
res.write('123456')
//2.express的响应方法
res.status(202);//设置响应状态吗
res.set('xxx','yyy') //设置响应头
res.send('中文响应不乱吗'); //设置响应体
//3.连贯操作
res.status(203).set('a','b').send('你好')
//4.其他响应
res.redirect('http://www.baidu.com') //重定向
res.download(__dirname + '/package.json')//下载文件 不能有res.end()
res.json() //响应JSON 不能有res.end()
res.sendFile(__dirname + '/1.html') //打开文件 不能有res.end()
res.end('hello')
})
//4.监听路由,启动服务
app.listen(3000,()=>{
console.log('服务启动成功')
})
六.获取请求体数据
-
创建中间件
app.use(express.json())
app.use(express.urlencoded({ extended: false })) -
使用中间件
console.log(req.body)
//1.导入express模块
const express = require('express')
//2.创建应用对象
const app = express()
//创建中间件
app.use(express.json())
app.use(express.urlencoded({ extended: false }))
//3.创建路由
app.post('/login', (req, res) => {
console.log(req.body)
res.send('你好呀')
})
//4.启动服务
app.listen(3000, () => {
console.log('服务启动成功')
})