node.js 學(xué)習(xí)一 之 hello world

什么是node.js

  • 編寫高性能網(wǎng)絡(luò)服務(wù)器的JavaScript工具包
  • 單線程赶站、異步过吻、事件驅(qū)動(dòng)
    (就是來1w個(gè)請求吏砂,來一個(gè)請求就給這個(gè)請求開辟一個(gè)內(nèi)存塊來處理城瞎?
    (事件驅(qū)動(dòng)就是例如來一個(gè)事件崎弃,然后有一個(gè)回調(diào)甘晤,等事件(請求含潘?)結(jié)束,處理回調(diào)线婚?
  • 特點(diǎn): 快遏弱,耗內(nèi)存多
  • 異步消耗內(nèi)存測試:網(wǎng)上一個(gè)百萬級并發(fā)測試,未優(yōu)化的情況下 1M的連接消耗了16G的內(nèi)存

node.js 的劣勢和解決方案

  • 默認(rèn)不支持多核塞弊,可用cluster解決
  • 默認(rèn)不支持服務(wù)器集群漱逸,node-http-proxy可解決
  • 使用nginx做負(fù)載均衡,靜態(tài)由nginx處理游沿,動(dòng)態(tài)由node.js處理
  • forever或node-cluster實(shí)現(xiàn)災(zāi)難恢復(fù)
    (以上這一些名詞還待詳細(xì)學(xué)習(xí))

安裝

安裝 node.js 官網(wǎng)下載
測試是否安裝成功
npm -v
node -v

hello world

var  http  =  require('http');  
// http 創(chuàng)建一個(gè)服務(wù)
// request - 瀏覽器向服務(wù)器請求發(fā)出的對象
// response - 服務(wù)器向?yàn)g覽器寫回的對象
http.createServer(function  (request,  response)  {  
    response.writeHead(200,  {'Content-Type':  'text/html;  charset=utf-8'});  
    console.log('訪問');  
    response.write('hello,world');  
}).listen(8000);  
console.log('Server  running  at  http://127.0.0.1:8000/');  
  
/*  
啟動(dòng)服務(wù)  
cmd下執(zhí)行:  
node  n1_hello.js  
瀏覽器訪問:http://localhost:8000  
*/    

瀏覽器:
可以看到雖然輸出了文字饰抒,但是瀏覽器還一直在loading
因?yàn)槿鄙倭艘痪?code>response.end(),http協(xié)議實(shí)際還未結(jié)束

01_hello_loading.png

增加response.end

var  http  =  require('http');  
// http 創(chuàng)建一個(gè)服務(wù)
// request - 瀏覽器向服務(wù)器請求發(fā)出的對象
// response - 服務(wù)器向?yàn)g覽器寫回的對象
http.createServer(function  (request,  response)  {  
    response.writeHead(200,  {'Content-Type':  'text/html;  charset=utf-8'});  
    console.log('訪問');  
    // write 輸出但http協(xié)議未執(zhí)行完畢
    response.write('hello,world');  
    response.end('hell,世界');//不寫則沒有http協(xié)議尾,但寫了會產(chǎn)生兩次訪問  
}).listen(8000);  
console.log('Server  running  at  http://127.0.0.1:8000/'); 

response.end中也可以輸入
然后從控制臺中可以看到奏候,輸入了兩次"訪問"


01_hello_console.png

這是因?yàn)闉g覽器會再次訪問 favicon 這個(gè)資源

01_hello_chrome.png

清除二次訪問

var  http  =  require('http');  
// http 創(chuàng)建一個(gè)服務(wù)
// request - 瀏覽器向服務(wù)器請求發(fā)出的對象
// response - 服務(wù)器向?yàn)g覽器寫回的對象
http.createServer(function  (request,  response)  {  
    response.writeHead(200,  {'Content-Type':  'text/html;  charset=utf-8'});  
    if(request.url!=="/favicon.ico"){  //清除第2此訪問  
        console.log('訪問');  
        // write 輸出但http協(xié)議未執(zhí)行完畢
        response.write('hello,world');  
        response.end('hell,世界');//不寫則沒有http協(xié)議尾,但寫了會產(chǎn)生兩次訪問  
    }  
}).listen(8000);  
console.log('Server  running  at  http://127.0.0.1:8000/');  
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末循集,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子蔗草,更是在濱河造成了極大的恐慌咒彤,老刑警劉巖,帶你破解...
    沈念sama閱讀 211,817評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件咒精,死亡現(xiàn)場離奇詭異镶柱,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)模叙,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,329評論 3 385
  • 文/潘曉璐 我一進(jìn)店門歇拆,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人范咨,你說我怎么就攤上這事故觅。” “怎么了渠啊?”我有些...
    開封第一講書人閱讀 157,354評論 0 348
  • 文/不壞的土叔 我叫張陵输吏,是天一觀的道長。 經(jīng)常有香客問我替蛉,道長贯溅,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,498評論 1 284
  • 正文 為了忘掉前任躲查,我火速辦了婚禮它浅,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘镣煮。我一直安慰自己姐霍,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,600評論 6 386
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著镊折,像睡著了一般黔衡。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上腌乡,一...
    開封第一講書人閱讀 49,829評論 1 290
  • 那天,我揣著相機(jī)與錄音夜牡,去河邊找鬼与纽。 笑死,一個(gè)胖子當(dāng)著我的面吹牛塘装,可吹牛的內(nèi)容都是我干的急迂。 我是一名探鬼主播,決...
    沈念sama閱讀 38,979評論 3 408
  • 文/蒼蘭香墨 我猛地睜開眼蹦肴,長吁一口氣:“原來是場噩夢啊……” “哼僚碎!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起阴幌,我...
    開封第一講書人閱讀 37,722評論 0 266
  • 序言:老撾萬榮一對情侶失蹤勺阐,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后矛双,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體渊抽,經(jīng)...
    沈念sama閱讀 44,189評論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,519評論 2 327
  • 正文 我和宋清朗相戀三年议忽,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了懒闷。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,654評論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡栈幸,死狀恐怖愤估,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情速址,我是刑警寧澤玩焰,帶...
    沈念sama閱讀 34,329評論 4 330
  • 正文 年R本政府宣布,位于F島的核電站壳繁,受9級特大地震影響震捣,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜闹炉,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,940評論 3 313
  • 文/蒙蒙 一蒿赢、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧渣触,春花似錦羡棵、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,762評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽店展。三九已至,卻和暖如春秃流,著一層夾襖步出監(jiān)牢的瞬間赂蕴,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,993評論 1 266
  • 我被黑心中介騙來泰國打工舶胀, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留概说,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 46,382評論 2 360
  • 正文 我出身青樓嚣伐,卻偏偏與公主長得像糖赔,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個(gè)殘疾皇子轩端,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,543評論 2 349

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

  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理放典,服務(wù)發(fā)現(xiàn),斷路器基茵,智...
    卡卡羅2017閱讀 134,633評論 18 139
  • https://nodejs.org/api/documentation.html 工具模塊 Assert 測試 ...
    KeKeMars閱讀 6,313評論 0 6
  • @轉(zhuǎn)自GitHub 介紹js的基本數(shù)據(jù)類型奋构。Undefined、Null拱层、Boolean声怔、Number、Strin...
    YT_Zou閱讀 1,145評論 0 0
  • 第一步舱呻,用鉛筆打稿醋火,我用的0.7的自動(dòng)鉛筆。注意蛋糕的邊緣不是平滑的直線箱吕,而是不規(guī)則的曲線芥驳。 巧克力豆是不規(guī)則的立...
    微涼荼眸意閱讀 538評論 0 0
  • 安打電話過來,電話那頭是她傷心欲絕的哭聲茬高。我慌忙問她怎么了兆旬。她抽抽噎噎的開始傾述,事情的原委也在電話那頭時(shí)斷時(shí)續(xù)的...
    喵喵解憂鋪閱讀 1,664評論 7 4