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);