node簡介

1. Node.js是什麼?javascript

  簡單的說 Node.js 就是運行在服務端的 JavaScript。css

  Node.js 是一個基於Chrome JavaScript 運行時創建的一個平臺。html

  Node.js是一個事件驅動I/O服務端JavaScript環境,基於Google的V8引擎,所以不須要考慮兼容性的問題,V8引擎執行Javascript的速度很是快,性能很是好。java

  Node.js是運行在服務端上的Javascript。node

  Node的核心語言是javascript,並非一門新的語言,而是一門技術。數組

2. Node的模塊服務器

  Node的模塊主要分爲兩類:宿主模塊和內置模塊。模塊的主要目的是爲了方便管理和維護。併發

  宿主對象: window   history異步

  內置對象:math   data     regexp      array      string......函數

  模塊的導入(require):

var http = require("http");      //導入http模塊
var fs = require("fs");      //導入文件系統模塊
var querystring = require("querystring");      //導入參數模塊
var url = require("url");      //導入地址模塊

3. 一個簡單的node.js

var http = require("http");   //引入http的模塊,用來提供服務
var fs = require("fs");
var server = http.createServer();    //建立一個服務器
//server監聽request事件,callback
server.on('request',function(request,response){
	response.writeHead(200,{"Content-Type" : "text/html;charset=utf8"});
     res.end('Hello World\n');
}); // 服務搭建完成,監聽端口 server.listen(8888); console.log('服務運行在localhost:8888')
//ctrl+c   中止

4. 關於文件系統(fs)的一些經常使用的方法

  在填寫路徑的時候必須加上"./"這是表示在當前目錄。

  4.1 讀取文件 readFile(異步)和readFileSync(同步)。

// fs 文件系統的模塊
var fs = require("fs");  
// console.log(fs);

// 異步讀取文件
fs.readFile('./08.txt','utf8',function(err,data){   //若是編碼格式不寫,輸出的就是一串buffer碼
	if(err){
		throw err;   //把錯誤拋出來,阻止代碼繼續日後面走
	}
	console.log(data)
})

// 同步
// var data = fs.readFileSync("./08.txt",'utf8')   //同步讀完就是函數的返回值
// console.log(data)

  4.2  判斷文件(文件夾)是否存在

fs.access('./08.txt',function(err){   //判斷文件是否存在
	if(err){
		throw err;
	}
	// 若是沒有拋出錯誤,文件存在
	fs.readFile('./08.txt','utf8',function(err,data){
		if(err) throw err;

		console.log(data);
	})
})


fs.access("./abc",function(err){    //判斷文件夾
	if(err){
		throw err;
	}
	console.log('hello')
})

  4.3 建立文件夾(同異步)

異步的建立文件夾
fs.mkdir("./data02",function(err){
	console.log(err);   //node會報錯,可是錯誤都不會拋出,不會影響後續代碼的執行
	console.log('OK');
})

同步的建立文件夾
fs.mkdirSync(path[, options])

  4.4 讀文件夾(同異步)

fs.readdir("./data",function(err,data){
	console.log(err);
	console.log(data);   //裏面的文件以數組的形式表示出來,進行判斷,判斷是不是文件夾
	// 若是是文件夾,繼續讀文件夾,若是是文件,直接讀文件,而後展現
})

同步的讀文件夾
fs.readdirSync(path[, options])

5. 知識補充

  什麼是i/o?

   i:input 

   o:output

   輸入和輸出, i/o 就是服務器的一個讀寫操做。

  什麼是併發?

   段時間內有多個程序在運行到運行完畢之間。

  同步和異步有什麼區別

   同步會阻塞 循環 script加載src。

   異步不會阻塞代碼 定時器,link加載css,img加載src。

  什麼是異步的IO?
   要有數據的交互 異步的IO 讀文件。
   沒有數據的交互 異步的非IO setTimeout setInterval。

  線程與進程

   一個程序至少須要一個進程,一個進程至少須要一個線程。

相關文章
相關標籤/搜索