node.js概念:
簡單點說Nodejs就是運行在服務端的JavaScript。
- node. js :雖然帶一個js后綴,但他實際上采用 Google Chrome瀏覽器,V8引擎,由c++語言編寫的,本質上是一個JavaScript 的運行環境。速度非常快,性能非常好。
往往提到js,大家就會想到瀏覽器中各種:
交互組件
異步請求 等等- node.js不僅僅可以解析js代碼(并且也沒有瀏覽器端安全性的控制)。
還提供許多系統級別的API:
1、文件的讀寫
2、進程的管理
3、網絡通信 等等
話不多說,我們開始看一個很簡單的小程序,來了解一下在node里http請求的過程。
demo
/**
* Created by wangqi on 16-12-10.
*/
var http = require('http'); //1
http.createServer(function(req, res) { //2 //4 //5
res.writeHead(200, {
'Content-Type': 'text/plain'
});
res.end('Hello World\n'); //6
}).listen(2000, '127.0.0.1'); //3
console.log('快去瀏覽器輸入:127.0.0.1:2000');
const http = require('http');
const hostname = '127.0.0.1';
const port = 2000;
const server = http.createServer((req, res) = >{
res.statusCode = 200;
res.setHeader('Content-Type', 'text/plain');
res.end('Hello World\n');
});
server.listen(port, hostname, () = >{
console.log(`Server running at http: //${hostname}:${port}/`);
});
對比兩個程序,其實實現的結果都一樣。
結果:
結果圖
- http模塊由javascript編寫,職責是創建web服務器及處理http相關的任務等等。
- 通過createServer創建一個web服務器。
- 然后通過listen讓服務器在這個2000端口監聽請求。服務器就已經ready了,然后就能收到來自任何端口的請求了。
- 當請求進來的時候,我們得告訴node.js接下來要做什么,于是給createServer傳入了一個匿名的回調函數。
- 在監聽到從2000端口過來的請求以后,node.js就會來調用這個回調函數,同時給他傳入兩個參數,分別是請求體(req)和響應體(res)。
- req:用來獲取這次請求的相關一些信息,比如這個請求是從哪個url地址過來的、請求的類型是get還是post。
- res:用來告訴服務器給這個請求響應一些內容,要不然請求就會一直處于掛起的狀態。
- 最后就是給請求的客戶端返回一個Hello World,同時在返回的請求頭里面寫入返回的狀態碼是200,代表的是成功,設置返回的文本內容是純文本。
注意:如果修改了輸出的內容則必須重啟服務器,重新加載。在終端利用快捷鍵ctrl+c來中斷上次服務器。
給大家推薦幾個容易上手并學習nodejs的網站:
node官網查看nodejs的版本升級,新特性的加入,重要bug的修復等等,包括最近API的變化。
可搜索整合好的代碼,主要用于項目
技術問答社區 用它來解決技術的疑問,以及查詢相關的資源,特別是當環境配置出現了問題,跑服務的時候報了異常等等,這些都可以找到答案。
好了,就先寫到這兒,后面會會逐漸更新補充的~_~漬漬