赞助

 

 

nodejs中完成反向代理实现

安装反向代理的模块

cnpm i http-proxy-middleware -S

 

 

node程序完成代理编码

const express = require('express')
const httpProxyMiddleware = require('http-proxy-middleware')
const router = express.Router()
// 服务器代理 --接口中间层 代理层
router.use('/api'.httpProxyMiddleware.createProxyMiddleware.createProxyMiddleware)({
    // 代理目标地址
    target: 'http://localhost',
    // 默认false不修改 修改代理请求时它的主机名称
    changeOrigin: true,
    // 规则匹配
    pathRewrite: {
        // 访问路劲 映射到目标服务器中的路径
        // http://localhost:3000/v1/api/a.php ==>http://localhost/a.php 
        // 可以写多个规则
        '^/v1/api/aa/bb': '/',
        '^/v1/api' : '/'
    }
})

vue中实现开发环境的时的反向代理进行跨域解决,在项目根目录下面创建一个vue.config.js文件,写下如下代码

//  webpack配置 --- 代理 开发环境时,最常用的
// commonJs模块化
module.exports = {
    // 指定服务器模块
    devServer: {
        // 代理
        proxy: {
            '/api': {
                // 目标接口地址
                target:'http://localhost:9000',
                // 请求的主机名和目录地址主机一致 host
                changeOrigin: true,
                // 如果axios请求的uri和目标接口uri不一致时才需要正则来映射
                pathRewrite:{
                    // axios中的写的uri前缀 服务器端的请求uri地址
                    '^/api':'/v1/api'
                }
            }
        }
    }
}

 

posted on 2021-01-15 18:34  Tsunami黄嵩粟  阅读(117)  评论(0编辑  收藏  举报