摘要:在公司的項(xiàng)目中用了向前端還是我提供數(shù)據(jù)接口和渲染頁面。有一些操作是和端交互,所以需要寫一些代理轉(zhuǎn)發(fā)請求,從網(wǎng)上找了一些的代理庫,要不就是橫生要不就是功能不完全,只能代理請求,于是用寫了個簡單的,代碼挺簡單的,寫篇博文記錄下。
在公司的項(xiàng)目中用了 koa 向前端(還是我)提供數(shù)據(jù)接口和渲染頁面。有一些操作是和 Java 端交互,所以需要寫一些代理轉(zhuǎn)發(fā)請求,從網(wǎng)上找了一些koa的代理庫,要不就是bug橫生;要不就是功能不完全,只能代理 get 請求,于是用 node-fetch 寫了個簡單的 proxy ,代碼挺簡單的,寫篇博文記錄下。
用到了 fetch api,可以看 node-fetch
// proxy.js import fetch from "node-fetch" export default (...args) => { return fetch.apply(null, args).then(function (res) { return res.text() }) } } // 沒錯,就是這么簡單,稍微把fetch封裝下就可以了 // app.js import koa from "koa" import proxy from "./proxy" const app = koa() const proxyServer = koa() app.use(function* (next) { if ("/users" === this.path && "GET" === this.method) this.body = yield proxy("http://localhost:8087/users") if ("/user" === this.path) this.body = yield proxy("http://localhost:8087/user", { method: "POST", headers: { "Accept": "application/json", "Content-Type": "application/json" }, body: JSON.stringify({ name: "Hubot", login: "hubot", }) }) yield next }) proxyServer.use(function* (next) { if ("/users" === this.path && "GET" === this.method) this.body = { "test": 1 } if ("/user" === this.path && "POST" === this.method) { this.body= { "data" : `yes, it"s right` } } yield next }) app.listen(8086) proxyServer.listen(8087) console.log("server start 8086") console.log("server start 8087")
上面 app.js 中創(chuàng)建了兩個 server,8086端口為代理 server, 8087端口為被代理的 server,訪問 localhost:8086/users 會返回 {"test": 1},說明get請求代理成功,同理訪問 localhost:8086/user,會返回
{ "data": "yes, it"s right"},說明成功代理了post請求并返回了被代理server的結(jié)果。
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/86195.html
摘要:簡介搭建多頁面服務(wù)端渲染技術(shù)點(diǎn)搭建服務(wù)創(chuàng)建頁面路由模板引擎組合打包多頁面端異步請求服務(wù)端日志打印項(xiàng)目源碼運(yùn)行一現(xiàn)代服務(wù)端渲染的由來服務(wù)端渲染概念是指,瀏覽器向服務(wù)器發(fā)出請求頁面,服務(wù)端將準(zhǔn)備好的模板和數(shù)據(jù)組裝成完整的返回給瀏覽器展示前端后 簡介 nodejs搭建多頁面服務(wù)端渲染 技術(shù)點(diǎn) koa 搭建服務(wù) koa-router 創(chuàng)建頁面路由 nunjucks 模板引擎組合html ...
摘要:前言第三方登入太常見了,微信,微博,總有一個你用過。本項(xiàng)目源碼地址第三方登入第三方登入主要基于。授權(quán)回掉處理獲取在第一步授權(quán)請求成功后會給應(yīng)用返回一個回掉。 前言 第三方登入太常見了,微信,微博,QQ...總有一個你用過。當(dāng)然看這篇文章的你,應(yīng)該還用過github登入。這篇分享是在上一篇基于node的登入例子(node-koa-mongoose)的基礎(chǔ)增加了github賬號第三方授權(quán)登...
摘要:背景最近在做一個基于的微信公眾平臺腳手架,由于我只有一個域名,現(xiàn)在同時有好幾個應(yīng)用在上面掛載著,所以只能做一下反向代理,可是反向代理只能代理動態(tài)文件,對于靜態(tài)資源貌似沒有什么好的解決方法本文針對以上問題進(jìn)行逐步解決,通過修改相關(guān)配置,并結(jié)合 背景 最近在做一個基于koa的微信公眾平臺腳手架,由于我只有一個域名demozhan.com,現(xiàn)在同時有好幾個web應(yīng)用在上面掛載著,所以只能做一...
摘要:背景最近在做一個基于的微信公眾平臺腳手架,由于我只有一個域名,現(xiàn)在同時有好幾個應(yīng)用在上面掛載著,所以只能做一下反向代理,可是反向代理只能代理動態(tài)文件,對于靜態(tài)資源貌似沒有什么好的解決方法本文針對以上問題進(jìn)行逐步解決,通過修改相關(guān)配置,并結(jié)合 背景 最近在做一個基于koa的微信公眾平臺腳手架,由于我只有一個域名demozhan.com,現(xiàn)在同時有好幾個web應(yīng)用在上面掛載著,所以只能做一...
摘要:前言老項(xiàng)目,項(xiàng)目情況端配置運(yùn)行環(huán)境方面有些人開發(fā)環(huán)境是,有些是。以我的開發(fā)環(huán)境為例老項(xiàng)目的運(yùn)行,開發(fā)時需要先執(zhí)行一個腳本經(jīng)歷過一次風(fēng)波之后做的人走光啦,但是老項(xiàng)目要繼續(xù)維護(hù)。老項(xiàng)目改造其實(shí)還有不少坑,等我想起來再慢慢更新。 前言 老項(xiàng)目,React + PHP + nginx 項(xiàng)目情況 PHP端配置 PHP運(yùn)行環(huán)境方面:有些人開發(fā)環(huán)境是wamp(apache + PHP),有些是np...
閱讀 1125·2021-11-24 09:38
閱讀 3229·2021-11-19 09:56
閱讀 2955·2021-11-18 10:02
閱讀 721·2019-08-29 12:50
閱讀 2566·2019-08-28 18:30
閱讀 859·2019-08-28 18:10
閱讀 3659·2019-08-26 11:36
閱讀 2640·2019-08-23 18:23