express 基本使用

EXPRESS 的使用

介绍:express 是一个第三方模块,是封装了 nodejs 的库,使工作简单化,提高开发效率。

  • 搭建 web 服务

    • 下载 express 包到项目运行依赖中
    $ npm i express -S
    
    • 搭建服务
    // 引入 express 模块
    const express = require('express')
    
    // 创建一个 web 服务
    const server = express()
    
    // 处理接口
    server.get('/', (req, res) => {
        res.send({
            code: 1,
            message: '返回的数据'
        })
    })
    
    // 监听端口
    server.listen(3000, 'localhost', function () {
        console.log('服务创建成功')
    })
    
  • 静态资源托管

    server.use(express.static('./public'))
    
  • 接口响应

    • 支持各种请求:get、post、put、delete …
    server.get(url, (req, res, next) => {})
    server.post(url, (req, res, next) => {})
    server.all('/api/*', (req, res, next) => {})  // 匹配 /api 下面的所有请求
    server.use('/', (req, res, next) => {})  // / 下所有请求都会进来
    // next 调用后才会执行后面的请求
    ...
    
  • 请求体

    // 用于 获取非地址栏数据 的中间件,需要下载
    const bodyParser = require('body-parser')   
    server.use(bodyParser())  // 使用这个中间件
    
    server.all('/api/:id', (req, res, next) => {  // 这里的 :id 表示动态接口
        req.query   // 获取地址栏的数据,返回的是一个对象
    	req.body    // 获取 非地址栏的数据,需要依赖 body-parser 这个中间件
        req.parser  // 获取动态接口名
        req.mothod  // 获取前端的请求方式 
        next()   // 继续后面的请求处理
    })
    
  • 响应体

    server.all('/api/*', (req, res, next) => { 
        res.send(any)  // 可以返回任意类型数据,且不需要设置响应头
        res.end(string | buffer)
        res.json(json)  // 返回 json 数据
        res.jsonp(响应数据)  // 会调用 请求时的回调函数,并传递响应数据回去  都是 get 请求
        res.sendFile(path.sesolve('public/error.html'))  // 渲染 纯 html 页面
        next()
    })
    
  • jsonp 响应

    // 设置 jsonp 的回调函数名称, 不设置 默认是 callback
    server.set('jsonp callback name', 'cb')  
    
    server.get('jsonp 接口地址', (req, res, next) => {
    	res.jsonp(数据)  // 返回数据给前端
    })
    
  • use

     // use 作用:安装中间件、路由、接收一个函数
    server.use([地址], 中间件 | 路由 | 函数体)
    
    // 中间件:处理自定义业务,只处理请求到结束响应的中间部分,body-parser 就是一个处理 非地址栏数据的中间件
    // 地址不写默认就是 / 根目录
    
  • 后端重定向

    // 跳转到指定地址或接口  post 请求实现不了跳转
    res.redirect('http:localhost:3000/index.html') 
    
    
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值