Node.js學習筆記1

回憶不抵流年發表於2019-02-16

Node基本介紹

NodeJs可以解析和執行js程式碼,它不是一門語言,也不是庫和框架,即js可以脫離瀏覽器執行
1.在NodeJs這個JavaScript環境中為JavaScript提供了一些伺服器級別的操作API

檔案的讀寫
網路服務的構建
網路通訊
http伺服器等處理

2.沒有BOM,DOM
3.只有一些簡單的js語法(ECMScript)

執行js指令碼檔案 首先要進入到檔案所在的路徑開啟cmd

node 檔名 來執行命令
js檔名最好不要使用中文來命名
在nodeJs中沒有DOM和BOM,所以在js中使用window和document會報錯
node helloworld.js

瀏覽器中的JavaScript是沒有檔案操作的能力,但是Node中的JavaScript具有檔案操作的能力

Node操作檔案

fs是file-system的簡寫,就是檔案系統的意思。在Node中如果想要進行檔案操作,就必須引入fs這個核心模組。在fs這個核心模組中,就提供了所有檔案操作相關的API
例如:fs.readFile就是用來讀取檔案的

1.使用require方法載入fs核心模組

var fs = require(`fs`);

2.讀取檔案
第一個引數:要讀取的檔案路徑,第二個引數:是一個回撥函式(error:讀取失敗,error就是錯誤物件,讀取成功,error就是null)(data:讀取成功,data就是讀取的資料,讀取失敗,data就是null)

fs.readFile(`helloworld.txt`,function(error,data){
    if(error){
        console.log(`讀取檔案失敗`);
        return;
    }else{
        console.log(data.toString());
    }
});

檔案中儲存的其實是一堆的0和1二進位制數,使用toString方法來轉化為字串

3.寫檔案
第一個引數為要寫的檔案的路徑,第二個引數寫入的檔案內容,第三個引數為回撥函式(error為錯誤物件:寫入成功為null)

fs.writeFile(`helloworld.txt`,`我是nodeJs`,function(error){
    console.log(error);
})

簡單的http服務

可以使用Node構建一個web伺服器,在node中專門構建一個核心模組:http,http這個模組的職責就是建立編寫伺服器的

1.載入http核心模組

var http=require(`http`);

2.使用http.createServer()方法建立一個web伺服器
返回一個server例項

var server=http.createServer();

3.伺服器:提供資料的服務

發請求
接收請求
處理請求
傳送響應
註冊request請求事件
當客戶端請求過來,就會自動觸發伺服器的request請求事件,然後執行第二個引數:回撥函式
Request 請求物件,可以用來獲取客戶端的一些請求資訊,例如請求路徑等
Response 響應物件,可以用來給客戶端傳送響應訊息,響應的資料只能是二進位制數和字串,不能是陣列,物件,數字等,需要進行裝換。
server.on(`request`,function(request,response){
    console.log(`收到請求了`);
    //傳送響應
    response.write(`hello`);
    //結束響應
    response.end();
});
繫結埠號,啟動伺服器
server.listen(3000,function(){
    console.log(`伺服器啟動成功了,可以通過http://127.0.0.1:300/ 來進行訪問`);
});

Node中的Javascript

EcmaScript:沒有DOM和BOM
核心模組
第三方模組
使用者自定義模組

1.核心模組
Node為JavaScript提供了很多伺服器級別的API,這些API絕大多數都被包裝到了一個具名的核心模組中了,例如檔案操作的fs核心模組,http服務構建的http模組,path路徑模組等

想要使用這個模組需要引入:
    例如:var fs=require(`fs`);
    

2.簡單的模組化程式設計

在node中模組有三種:
    1.具名的核心模組,例如:fs,http等
    2.使用者自己編寫的檔案模組:相對路徑必須加./
require匯入
exports輸出

例如:
//b.js
var foo=`hello`;
exports.foo=foo;
exports.add=function add(x,y){
    return x+y;
}
//a.js
var obj=require(`./b.js`);
obj.foo;
obj.add(x,y);

相關文章