在node中,模組主要分兩大類:核心模組和檔案模組。核心模組部分在 node 源**的編譯過程中,編譯進了二進位制執行檔案。在 node 進啟動時,部分核心模組就被直接載入進記憶體中,所以這部分核心模組引入時,檔案定位和編譯執行這兩個步驟可以省略掉,並且在路徑分析中優先判斷,所以它的載入速度是最快的。如:http 模組 、url 模組、fs 模組都是 nodejs 內建的核心模組,可以直接引入使用。
通常我們的js都是做為其他檔案的一部分進行執行的,但是在node中,幾乎都是js格式檔案,這個時候就可以使用node命令進行執行了:
建立專案
新建資料夾後,使用npm init命令初始化專案
生成相關依賴
進入專案資料夾,執行命令npm install生成專案依賴
新建檔案並執行
在專案根目錄,新建01.js,並書寫相關**,最後執行node 01.js就可以執行**了
nodemon
在上面的步驟中已經實現了直接執行js檔案,但是每次修改了檔案後,都需要重新執行命令,會比較麻煩,這裡就可以使用nodemon來自動監視**的修改,減少重複操作。
首先需要執行命令npm install -g nodemon進行全域性安裝,然後將執行命令修改為nodemon 00.js就可以了。
在我們使用php編寫後台**的時候,通常需要apache或者ngnix的http來處理客戶端的請求響應。不過對node.js來說,概念完全不一樣了,使用node.js時,我們既能實現乙個應用,也能實現整個http伺服器。
1,使用http模組的時候,首先需要引入該模組
2,然後使用createserver建立乙個伺服器,
3,並且監聽埠
最後執行程式:開啟終端,切換到檔案的根目錄,執行命令node 檔名再回車就可以了。
程式啟動後,在瀏覽器中開啟http://localhost:8888/,就會在終端中看到相關的列印
此時,我們會發現瀏覽器的位址列出一直處於載入狀態,因此需要在伺服器的**函式中執行end方法來是web伺服器停止處理指令碼並返回當前結果。
另外,在上面,我們使用的是預設的localhost,但是有的時候,localhost是被占用了,需要使用其他的ip來執行,只需要在監聽埠處新增ip作為第二個引數就可以了。
這裡缺省會有兩個請求,第二個是位址列圖示的請求。
在上面的**函式中使用到了兩個引數:req表示請求,res表示響應,如果要給請求新增響應,首先需要設定乙個響應頭,在這個響應頭中指定http狀態碼,檔案型別和字符集
然後使用write新增響應內容
完整**如下
既然req是表示請求,裡面最重要的就是req.url了,通過req.url拿到了使用者的請求位址後,如何解析出我們想要的資料,就需要用到url模組了。
和使用http模組一樣,使用url模組,也是需要先引入再使用,在url模組中,主要有一下三個方法會經常被用到。
這個方法主要用來解析url
此時,雖然我們列印出了請求的使用者名稱和密碼,但是如果想要獲取這些資訊,還需要在url.parse中新增第二個引數,將query裡面的字段格式化。
url.format()是url.parse()的逆操作。
執行程式,重新整理瀏覽器,就可以看到終端的列印
url.resolve()方法用於新增或者替換位址。
node核心模組
1 http模組 搭建 http 服務端和客戶端 2 fs模組 檔案管理 3 path模組 處理檔案和目錄的路徑 4 url模組 處理url 5 querystring模組 處理查詢字串 6 os模組 提供作業系統的一些基本資訊 7 net模組 提供了一些用於底層的網路通訊的小工具,包含了建立伺服器...
Node核心模組Buffer
buffer是node掛載到global上的乙個類。也就是記憶體,乙個漢字在utf8編碼下是三個位元組。buffer的變現形式是16進製制。let buf buffer.alloc 6 console.log buf 複製 let buf buffer.from 123131 let buf buf...
Node核心模組Http
let realpath path.join dirname,pathname 拼接真實檔案的路徑 tryelse catch e server.listen 3000,function 複製 let http require http let url require url let path re...