5.node-express基础

101 阅读2分钟

一.express
二.初体验
三.express路由
四.获取请求报文参数
五. express响应设置
六.获取请求体数据

一.express

express是基于node.js平台的极简、灵活的WEB应用开发框架, 点击跳转官方网址

二.初体验

  1. 初始化项目

    npm init

  2. 命名: express-learn

  3. 安装express: npm i express

  4. 创建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路由

  1. 路由的组成有请求方法, 路径回调函数组成

    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')
    })
    

四.获取请求报文参数

  1. 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('服务启动成功')
})
  1. 获取路由参数

获取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('服务启动成功')
})

六.获取请求体数据

  1. 创建中间件 app.use(express.json()) app.use(express.urlencoded({ extended: false }))

  2. 使用中间件

    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('服务启动成功')
})