Node.js相關總結

  node是一門技術,並非一門新的語言。是JavaScript運行環境。javascript

       node在解析JavaScript,依靠的是什麼?css

       依靠的是谷歌瀏覽器中的v8引擎,因此不須要考慮兼容性,node由於是直接用v8引擎去解析,因此沒有window對象html

2、那麼Node.js與JavaScript的區別是什麼?

  本質:前端

     Javascript是一種web前端語言,主要用於web開發中,由瀏覽器解析執行    java

     Node.js是一個能夠快速構建網絡服務及應用的平臺,是用Javascript語言構建的服務平臺,可用於後端創建服務器node

  區別:     web

     Javascript 主要應用前端    是編程語言    客戶端編程語言(須要瀏覽器的javascript解釋器進行解釋執行)       編程

     node.js    主要應用後端      1個平臺        運行環境(一個基於Chrome JavaScript運行時創建的平臺,它是對Google V8引擎進行了封裝的運行環境)簡單的說node.js就是把瀏覽器的解釋器封裝起來做爲服務器運行平臺,用相似javascript的結構語法進行編程,在node.js上運行。後端

 

3、那麼node.js有什麼優勢和缺點呢?

  優勢:數組

    1.事件驅動

    2.異步編程

    3.非阻塞模式的IO

    4.輕量高效

  缺點:

    1.可靠性低

    2.單進程,單線程,只支持單核cpu,不能充分的利用多核cpu服務器。一旦這個進程崩掉,那麼整個web服務就崩掉了。

 

4、node.js的語法

node.js的語法就是JavaScript的語法,基本語法與 javascript 同樣,這裏咱們使用exports導出一個函數,而後再另外一文件中經過require導入入一個模塊例如 :

  在 a.js 中寫一個函數var hello=function(){    console.log('hello')}export.hello=hello;

  在 b.js 中 須要用hello這個函數var a=require('a');a.hello()

什麼是模塊化?

  把代碼所有拆分紅模塊,主要是方便管理和維護,一個文件就是一個模塊。

在node中,有一些內置的模塊(包),經過require函數引入:

  fs 文件系統

  http 建立服務

  path 路徑

  querystring 參數模塊

  url 地址欄

  固然也能夠自定義模塊

固然,node.js還有不少內置的方法,如比較經常使用的有讀文件、寫入文件等等。

node.js的經常使用方法

引入模塊:var  fs = require('fs')

fs模塊的經常使用方法:

/ fs.writeFile(file,str,'utf8',function(err){  
//若是寫入成功,這個err爲null
//     if(err){
//         throw err;    //若是錯誤,將錯誤拋出
//     }

//     // 若是文件不存在,會幫你去建立對應的文件,可是不會建立文件夾
// })

// 同步寫文件
// fs.writeFileSync(file, data[, options])

// 異步的追加文件
// fs.appendFile(path, data[, options], callback)

// 同步的追加文件
// fs.appendFileSync(path, data[, options])

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

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

// 異步讀文件夾
// fs.readdir(path[, options], callback)
//裏面的文件以數組的形式表示出來,進行判斷,判斷是不是文件夾
// 若是是文件夾,繼續讀文件夾,若是是文件,直接讀文件,而後展現

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

// 異步判斷文件或者文件夾是否存在
// fs.access(path[, mode], callback)   可否判斷文件夾是否存在
// fs.access("./data",function(err){   //這個方法是能夠判斷文件和文件夾是否存在
//     console.log(err);
//     console.log('OK');
// })

// 同步判斷文件或者文件夾是否存在
// fs.accessSync(path[, mode])

//同步讀文件
fs.readFile(file,'utf8',function(err,data){
            response.end(data);
        })
//異步讀文件
fs.readFilesync(file,'utf8',function(err,data){
            response.end(data);
        })

5、服務器的搭建

var http = require("http");   //引入http的模塊,用來提供服務

var server = http.createServer();    //建立一個服務器

//server監聽request事件,callback
server.on('request',function(request,response){

        //設置請求頭
    response.writeHead(200,{"Content-Type" : "text/html;charset=utf8"});
    // 注意:圖片,script,css,文本,html都要與之對應
    // response.write("<h1>hello world</h1>");
    // // 輸出對應的中文的時候,要有對應的格式和對應的編碼
    // response.end("<h2>hello world</h2>");  
        //結束,結束必須有,否則表示這個請求和響應沒有完成

        //接口
    if(request.url == "/login.html" && request.method == "GET"){
            response.end("這個是登陸界面")
    }else if(request.url == "/register" && request.method == "GET"){
        response.end("這個是註冊界面")
    }
    else if(request.url == "/login" && request.method == "POST"){
        response.end("登陸成功")
    }
    else {
        response.end("404");
    }


});

// 服務搭建完成,監聽端口
server.listen(8888);    //ctrl+c   中止

簡略版(基本硬式步驟)

var http = require("http");
var server = http.createServer();
server.on("request",function(request,response){

})
server.listen(8888);
相關文章
相關標籤/搜索