利用node.js實現(xiàn)反向代理的方法詳解
本文主要給大家介紹的是關(guān)于利用node.js實現(xiàn)反向代理的相關(guān)內(nèi)容,分享出供大家參考學(xué)習(xí),下面話不多說,來一起看看詳細(xì)的介紹:
跨域問題是前端開發(fā)很常見的問題解決方案有很多種
- jsonp返回
- Access-Control-Allow-Origin:'*' (需要注意的是 對于post請求會變成option請求需求后端支持)
- 前端添加代理
前端添加代理
以vue-cli為例,前端添加代理
dev: { env: require('./dev.env'), port: 8888, autoOpenBrowser: true, assetsSubDirectory: 'static', assetsPublicPath: '/', proxyTable: { '/api':{ target: 'http://localhost:3000', changeOrigin: true, } }
其中'/api'為接口的前綴,target為后端服務(wù)地址
前端請求示例
vm.$http.post('/api/reg', JSON.stringify(info)).then(() => { }, () => { });
反向代理
反向代理可以理解為指定一個服務(wù)地址為內(nèi)部服務(wù)器地址。
為什么需要反向代理
如果只是作為接口請求,其實前端搭建代理服務(wù)器就可以了,但是代理服務(wù)器并不能滿足所有的日常開發(fā)。
比如說單點登錄的實現(xiàn),需求服務(wù)端做302跳轉(zhuǎn)。但是前端文件沒有部署到后端服務(wù)器時,set-cookie是不能成功種下cookie登錄信息的。
這就需要在后端服務(wù)器添加反向代理。
示例如下
const proxy = httpProxy.createProxyServer(); const proxyServer = http.createServer((req, res) => { proxy.web(req, res, { target: 'http://localhost:8888', }); }); proxyServer.listen(8088, () => { console.log('proxy server is running '); });
這樣前端開發(fā)就可以在8088端口了,當(dāng)然熱加載功能是在前端服務(wù)器的8888端口
總結(jié)
以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作能帶來一定的幫助,如果有疑問大家可以留言交流,謝謝大家對腳本之家的支持。
相關(guān)文章
node.js 用socket實現(xiàn)聊天的示例代碼
本篇文章主要介紹了node.js 用socket實現(xiàn)聊天的示例代碼,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-10-10使用Node.js的readline模塊逐行讀取并解析大文件
在Node.js環(huán)境中處理大文件是一個常見的需求,尤其是在處理日志文件、數(shù)據(jù)庫導(dǎo)出、或任何形式的大規(guī)模文本數(shù)據(jù)時,本文將深入探討如何使用Node.js的readline模塊來實現(xiàn)這一功能,并討論相關(guān)的性能優(yōu)化和注意事項,需要的朋友可以參考下2024-09-09npm出現(xiàn)Cannot?find?module?'XXX\node_modules\npm\bin\np
最近在啟動項目的時候會報這個錯就是npm丟失,所以下面這篇文章主要給大家介紹了關(guān)于npm出現(xiàn)Cannot?find?module?'XXX\node_modules\npm\bin\npm-cli.js'錯誤的解決方法,需要的朋友可以參考下2022-08-08CentOS 8.2服務(wù)器上安裝最新版Node.js的方法
這篇文章主要介紹了CentOS 8.2服務(wù)器上安裝最新版Node.js的方法,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-12-12