Vue項(xiàng)目中使用express實(shí)現(xiàn)反向代理

反向代理

在前后端分離的開(kāi)發(fā)中怠堪,存在一個(gè)問(wèn)題恳谎,我的前端代碼是在我的電腦上戒祠。而后端java代碼是在另一位同事上。如果前端請(qǐng)求直接調(diào)用后端那位同事提供的接口(用的是他的IP加上他啟動(dòng)服務(wù)器的端口)宴咧,那么會(huì)存在跨域問(wèn)題無(wú)法訪問(wèn)。這時(shí)候就會(huì)想到用反向代理解決問(wèn)題径缅。

所謂的反向代理掺栅,就是在前端和后臺(tái)服務(wù)器的中間以一個(gè)代理服務(wù)器的形式接受前端傳來(lái)的請(qǐng)求,并將其請(qǐng)求發(fā)送到對(duì)應(yīng)的服務(wù)器上纳猪。解決跨域問(wèn)題柿冲。

nginx這東西太大了,學(xué)習(xí)成本也比較大兆旬。我們弄個(gè)API的接口代理假抄,用node的express就好了。

準(zhǔn)備工作

如果你是用vue-cli構(gòu)建的項(xiàng)目丽猬,這些準(zhǔn)備工作就不需要了宿饱。直接在dev-server.js進(jìn)行代理配置就好了。

下面的這些包都需要用npm進(jìn)行安裝脚祟,如果沒(méi)有安裝需要先安裝才可以使用它

a谬以、引入express

  const express = require('express')
  const app = express()

b、引入反向代理插件 http-proxy-middlewar

  const proxyMiddlewar = require('http-proxy-middlewar')

代理配置

ok由桌,這兩個(gè)就是進(jìn)行反向代理的準(zhǔn)備工作为黎。下面開(kāi)始進(jìn)行反向代理配置邮丰。

首先,需要知道的是后端服務(wù)器的ip和端口號(hào)铭乾,

  const proxyPath = 'http://168.96.0.1:8080'   // 注意剪廉,這里只需要IP和端口號(hào)就可以了。這個(gè)ip我瞎寫(xiě)的

然后炕檩,將這個(gè)path配置到代理配置項(xiàng)中

  const proxyOption = {target: proxyPath,changeOrigin: true}

現(xiàn)在用express使用這個(gè)代理就好了

app.use('/api', proxyMiddlewar(proxyOption))  // 下面詳細(xì)說(shuō)明這一段  
app.listen() //表示監(jiān)聽(tīng)的端口號(hào)也就是本地的端口號(hào)斗蒋。用vue-cli構(gòu)建的項(xiàng)目不需要寫(xiě)這行代碼

這里注意這個(gè)'/api' ,這個(gè)是我們要進(jìn)行攔截的請(qǐng)求笛质。什么意思呢泉沾?

我們前端用node啟動(dòng)一個(gè)服務(wù)器,一般是localhost:8080妇押。我們前端可能會(huì)有很多種類的請(qǐng)求跷究,比如:
vue-router,就像假設(shè)我們有一個(gè)/blog的路由敲霍,那么 localhost:8080/blog 是跳入/blog這個(gè)路由揭朝,并顯示相應(yīng)的頁(yè)面。

像這一類的請(qǐng)求色冀,我們當(dāng)然是不希望通過(guò)反向代理去后臺(tái)請(qǐng)求數(shù)據(jù)的潭袱。想要通過(guò)反向代理去請(qǐng)求后臺(tái)的一般都是后臺(tái)的接口。這時(shí)候锋恬,前后端需要有一個(gè)規(guī)范屯换,比如前端請(qǐng)求的/api下的都是請(qǐng)求后臺(tái)的接口,這會(huì)很方便前后端聯(lián)調(diào)開(kāi)發(fā)与学。

那么就像上面那段代碼彤悔,通過(guò)配置一個(gè)攔截請(qǐng)求的context(上面是/api),只有為/api開(kāi)頭的才會(huì)通過(guò)反向代理去后臺(tái)發(fā)起請(qǐng)求。

app.use('/api', proxyMiddlewar(proxyOption))

這段就相當(dāng)于

 http://localhost:3000/api/..... —>  http://168.90.0.1:8080/api/....

這就完成了向后臺(tái)發(fā)起請(qǐng)求的反向代理

后續(xù)還會(huì)有其他的請(qǐng)求方面的配置
參考鏈接: https://github.com/chimurai/http-proxy-middleware

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末索守,一起剝皮案震驚了整個(gè)濱河市晕窑,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌卵佛,老刑警劉巖杨赤,帶你破解...
    沈念sama閱讀 212,383評(píng)論 6 493
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異截汪,居然都是意外死亡疾牲,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,522評(píng)論 3 385
  • 文/潘曉璐 我一進(jìn)店門(mén)衙解,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)阳柔,“玉大人,你說(shuō)我怎么就攤上這事蚓峦∩嗉粒” “怎么了济锄?”我有些...
    開(kāi)封第一講書(shū)人閱讀 157,852評(píng)論 0 348
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)霍转。 經(jīng)常有香客問(wèn)我荐绝,道長(zhǎng),這世上最難降的妖魔是什么谴忧? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 56,621評(píng)論 1 284
  • 正文 為了忘掉前任很泊,我火速辦了婚禮角虫,結(jié)果婚禮上沾谓,老公的妹妹穿的比我還像新娘。我一直安慰自己戳鹅,他們只是感情好均驶,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,741評(píng)論 6 386
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著枫虏,像睡著了一般妇穴。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上隶债,一...
    開(kāi)封第一講書(shū)人閱讀 49,929評(píng)論 1 290
  • 那天腾它,我揣著相機(jī)與錄音,去河邊找鬼死讹。 笑死瞒滴,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的赞警。 我是一名探鬼主播妓忍,決...
    沈念sama閱讀 39,076評(píng)論 3 410
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼愧旦!你這毒婦竟也來(lái)了世剖?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 37,803評(píng)論 0 268
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤笤虫,失蹤者是張志新(化名)和其女友劉穎旁瘫,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體琼蚯,經(jīng)...
    沈念sama閱讀 44,265評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡境蜕,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,582評(píng)論 2 327
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了凌停。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片粱年。...
    茶點(diǎn)故事閱讀 38,716評(píng)論 1 341
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出冤狡,到底是詐尸還是另有隱情,我是刑警寧澤宽闲,帶...
    沈念sama閱讀 34,395評(píng)論 4 333
  • 正文 年R本政府宣布拉队,位于F島的核電站弊知,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏粱快。R本人自食惡果不足惜秩彤,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 40,039評(píng)論 3 316
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望事哭。 院中可真熱鬧漫雷,春花似錦、人聲如沸鳍咱。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 30,798評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)谤辜。三九已至蓄坏,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間丑念,已是汗流浹背涡戳。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 32,027評(píng)論 1 266
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留脯倚,地道東北人渔彰。 一個(gè)月前我還...
    沈念sama閱讀 46,488評(píng)論 2 361
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像挠将,于是被迫代替她去往敵國(guó)和親胳岂。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,612評(píng)論 2 350

推薦閱讀更多精彩內(nèi)容

  • Spring Cloud為開(kāi)發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見(jiàn)模式的工具(例如配置管理舔稀,服務(wù)發(fā)現(xiàn)乳丰,斷路器,智...
    卡卡羅2017閱讀 134,637評(píng)論 18 139
  • Android 自定義View的各種姿勢(shì)1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 171,838評(píng)論 25 707
  • 上一篇《WEB請(qǐng)求處理一:瀏覽器請(qǐng)求發(fā)起處理》内贮,我們講述了瀏覽器端請(qǐng)求發(fā)起過(guò)程产园,通過(guò)DNS域名解析服務(wù)器IP,并建...
    七寸知架構(gòu)閱讀 80,946評(píng)論 21 356
  • 文/孫青云 記賬是從10年開(kāi)始的。最早用筆記在本子上技俐。后來(lái)改用記賬軟件乘陪。我記賬最主要記錄支出,然后簡(jiǎn)單備注下雕擂,比如...
    孫青云閱讀 1,047評(píng)論 4 14
  • 三觀不合 感情觀不合 無(wú)法講通 干脆就閉嘴吧 學(xué)會(huì)閉嘴 學(xué)會(huì)忍耐 當(dāng)三個(gè)人都這么認(rèn)為的時(shí)候 就該考慮一下這個(gè)問(wèn)題可...
    Arc空有少女心閱讀 135評(píng)論 0 0