Koa2註冊代理轉發中間件http-proxy-middleware

踩坑koa2開發,配置http-proxy-middleware用於代理轉的中間件。在使用koa2做爲先後端分離的框架,工程當中的靜態頁面須要請求在其餘域名下的java工程接口,因爲同源策略的限制,在koa2工程下的靜態資源只能經過node後端進行代理請求其餘域名下的接口。


 具體配置: java

const Koa = require('koa')
const app = new Koa()
const httpProxy = require('http-proxy-middleware');
const k2c = require('koa2-connect');
const bodyparser = require('koa-bodyparser')


/**
* 使用http代理請求轉發,用於代理頁面當中的http請求
* 這個代理請求得寫在bodyparse的前面,
*/
app.use(async(ctx, next) => {
    if (ctx.url.startsWith('/api')) { //匹配有api字段的請求url
       ctx.respond = false // 繞過koa內置對象response ,寫入原始res對象,而不是koa處理過的response
        await k2c(httpProxy({
        target: 'http://192.168.50.60:3000', 
        changeOrigin: true,
        secure: false,
        pathRewrite: {
        '^/api': ''
            }
        }
        ))(ctx,next);
    }
    await next()
})


app.use(bodyparser({
enableTypes:['json', 'form', 'text']
}))

.......等等一大堆中間件node

module.exports = app


總結,大部分是從網上收集到的知識點混合在一塊兒,完成http-proxy的代理,期間使用過幾個專門給koa2使用的http-proxy,可是大部分核心部分仍是依賴於http-proxy-middleware這個依賴包的json

相關文章
相關標籤/搜索