国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

koa 利用 node-fetch 寫個自己的代理

2501207950 / 663人閱讀

摘要:在公司的項(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

相關(guān)文章

  • node服務(wù)端渲染(完整demo)

    摘要:簡介搭建多頁面服務(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 ...

    cheukyin 評論0 收藏0
  • 第三方登入例子-GitHub授權(quán)登入(node-koa

    摘要:前言第三方登入太常見了,微信,微博,總有一個你用過。本項(xiàng)目源碼地址第三方登入第三方登入主要基于。授權(quán)回掉處理獲取在第一步授權(quán)請求成功后會給應(yīng)用返回一個回掉。 前言 第三方登入太常見了,微信,微博,QQ...總有一個你用過。當(dāng)然看這篇文章的你,應(yīng)該還用過github登入。這篇分享是在上一篇基于node的登入例子(node-koa-mongoose)的基礎(chǔ)增加了github賬號第三方授權(quán)登...

    Bmob 評論0 收藏0
  • koa利用nginx反向代理動態(tài)及靜態(tài)文件

    摘要:背景最近在做一個基于的微信公眾平臺腳手架,由于我只有一個域名,現(xiàn)在同時有好幾個應(yīng)用在上面掛載著,所以只能做一下反向代理,可是反向代理只能代理動態(tài)文件,對于靜態(tài)資源貌似沒有什么好的解決方法本文針對以上問題進(jìn)行逐步解決,通過修改相關(guān)配置,并結(jié)合 背景 最近在做一個基于koa的微信公眾平臺腳手架,由于我只有一個域名demozhan.com,現(xiàn)在同時有好幾個web應(yīng)用在上面掛載著,所以只能做一...

    opengps 評論0 收藏0
  • koa利用nginx反向代理動態(tài)及靜態(tài)文件

    摘要:背景最近在做一個基于的微信公眾平臺腳手架,由于我只有一個域名,現(xiàn)在同時有好幾個應(yīng)用在上面掛載著,所以只能做一下反向代理,可是反向代理只能代理動態(tài)文件,對于靜態(tài)資源貌似沒有什么好的解決方法本文針對以上問題進(jìn)行逐步解決,通過修改相關(guān)配置,并結(jié)合 背景 最近在做一個基于koa的微信公眾平臺腳手架,由于我只有一個域名demozhan.com,現(xiàn)在同時有好幾個web應(yīng)用在上面掛載著,所以只能做一...

    figofuture 評論0 收藏0
  • 老項(xià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...

    SimonMa 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<