最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

8 行 Node.js 代碼實現代理服務器

 更新時間:2016年12月05日 16:59:00   作者:空引  
JavaScript 前后端通吃,在全棧開發(fā)領域具有獨特的優(yōu)勢。今天就來看看作為服務端語言的 JavaScript,完成一個簡單的代理服務器功能是多么容易。

接觸 Node.js 已有多年,一直喜歡它的單線程模型和異步IO特性,以及 JavaScript 語言本身的靈活性。同時,JavaScript 前后端通吃,在全棧開發(fā)領域具有獨特的優(yōu)勢。今天就來看看作為服務端語言的 JavaScript,完成一個簡單的代理服務器功能是多么容易。

簡單地說,代理服務器就是代理用戶訪問目標站點的中介服務器。作為前端開發(fā)人員,代理的常見用途是跨域訪問后臺 API。當然,還可以用來科學上網。今天要分享的代碼,就是跟科學上網有關。

話不多說,先上 code:

var express = require('express');
var request = require('request');
var app = express();
app.use('/', function(req, res) {
 var url = 'https://www.baidu.com/' + req.url;
 req.pipe(request(url)).pipe(res);
});
app.listen(process.env.PORT || 3000); 

不到 10 行的代碼,就實現了簡單的代理服務器功能。是不是很神奇?

熟悉 Node.js 的話應該很容易看明白這幾行代碼。首先加載 express 模塊,這個是創(chuàng)建 HTTP 服務器的一個流行框架。然后是 request,它封裝了 HTTP 請求的各種方法,讓發(fā)起請求變得非常容易。接下來實例化一個 express 對象,設置訪問路由。最后監(jiān)聽 3000 端口。

先看效果。保存上述代碼到文件 proxy.js,在文件所在路徑執(zhí)行:

node proxy.js

用瀏覽器打開http://localhost:3000/

關鍵代碼在路由處理方法內。

req.pipe(request(url)).pipe(res);

這個 pipe 方法很神奇,正如它的名字(管道)一樣,它把瀏覽器的請求數據傳給 request 客戶端,然后將目標服務器的響應數據傳回瀏覽器。這代碼太TM簡潔了!

那么,怎么實現科學上網呢?對,把代碼放到沒有網絡封鎖的服務器上運行,就OK了。比如,這個 任度搜 www.rendoso.com 背后就是 Google 代理。

歡迎拍(da)磚(shang)。

以上就是本文的全部內容,希望本文的內容對大家的學習或者工作能帶來一定的幫助,如果有疑問大家可以留言交流,同時也希望多多支持腳本之家!

相關文章

  • Bootstrap3制作自己的導航欄

    Bootstrap3制作自己的導航欄

    這篇文章主要教會大家如何利用Bootstrap3制作自己的導航欄,設計自己喜歡的元素、樣式,感興趣的小伙伴們可以參考一下
    2016-05-05
  • 詳解Nuxt.js 實戰(zhàn)集錦

    詳解Nuxt.js 實戰(zhàn)集錦

    這篇文章主要介紹了Nuxt.js 實戰(zhàn)集錦,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-11-11
  • js 3種歸并操作的實例代碼

    js 3種歸并操作的實例代碼

    這篇文章介紹了js 3種歸并操作的實例代碼,有需要的朋友可以參考一下
    2013-10-10
  • 自己的js工具 Event封裝

    自己的js工具 Event封裝

    說到瀏覽器中的event,相信不少人都很頭疼,ie的event大部分時候都可以獲取到
    2009-08-08
  • JavaScript實現省市區(qū)三級聯(lián)動

    JavaScript實現省市區(qū)三級聯(lián)動

    這篇文章主要為大家詳細介紹了JavaScript實現省市區(qū)三級聯(lián)動,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-02-02
  • 從表單校驗看JavaScript策略模式的使用詳解

    從表單校驗看JavaScript策略模式的使用詳解

    這篇文章主要介紹了從表單校驗看JavaScript策略模式的使用,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-10-10
  • JavaScript單一職責原則深入分析

    JavaScript單一職責原則深入分析

    這篇文章主要介紹了理解JavaScript單一職責原則,單一職責原則(SRP:Single?responsibility?principle)又稱單一功能原則,面向對象五個基本原則(SOLID)之一,下文更多相關介紹感興趣的小伙伴可以參考一下
    2022-08-08
  • js獲取鍵盤按鍵響應事件(兼容各瀏覽器)

    js獲取鍵盤按鍵響應事件(兼容各瀏覽器)

    js獲取鍵盤按鍵響應事件(兼容各瀏覽器),需要的朋友可以參考一下
    2013-05-05
  • 關于js函數解釋(包括內嵌,對象等)

    關于js函數解釋(包括內嵌,對象等)

    下面小編就為大家?guī)硪黄P于js函數解釋(包括內嵌,對象等) 。小編覺得挺不錯的,現在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2016-11-11
  • 詳解JS異步加載的三種方式

    詳解JS異步加載的三種方式

    這篇文章主要介紹了詳解JS異步加載的三種方式,非常不錯,具有參考借鑒價值,需要的朋友可以參考下
    2017-03-03

最新評論

云林县| 屏东县| 东源县| 汝南县| 绍兴市| 阜南县| 扶绥县| 兴宁市| 长春市| 永善县| 德保县| 喀什市| 三都| 新疆| 铅山县| 年辖:市辖区| 平原县| 洞口县| 双峰县| 神农架林区| 蚌埠市| 刚察县| 岗巴县| 永德县| 弥渡县| 新安县| 铜鼓县| 年辖:市辖区| 宝兴县| 岱山县| 巫山县| 辽源市| 邢台县| 平阳县| 昭苏县| 南雄市| 张家川| 铜梁县| 永济市| 西城区| 宁蒗|