初識node

1、nodeJS的特點

  • 單線程:
    好處:是減少了內存開銷;
    缺點:就是一個用戶造成了線程的崩潰,整個服務都崩潰了,其他人也崩潰了。
  • 非阻塞I/O
    不會傻等I/O語句結束,而會執行后面的語句。
  • 事件驅動event-driven:不管是新用戶的請求,還是老用戶的I/O完成,都將以事件方式加入事件環,等待調度。

2、HTTP模塊

Node.js中,將很多的功能,劃分為了一個個mudule,大陸的書翻譯為模塊;這是因為,有一些程序需要使用fs功能(文件讀取功能),有一些不用的,所以為了效率,你用啥,你就require啥。

//這個案例簡單講解http模塊
//引用模塊
const http = require("http");
//創建一個服務器,回調函數表示接收到請求之后做的事情
const server = http.createServer(function(req,res){
    //req參數表示請求,res表示響應
    console.log("服務器接收到了請求" + req.url);
    res.writeHead(200,{"Content-Type":"text/html;charset=UTF-8"});
    //設置響應頭:文字編碼
    res.end();
});
//監聽端口
server.listen(3000,"127.0.0.1");
  • req的作用:
    最關鍵的就是req.url屬性,表示用戶的請求URL地址。所有的路由設計,都是通過req.url來實現的。
    我們比較關心的不是拿到URL,而是識別這個URL。

識別URL,用到兩個新模塊,第一個就是url模塊,第二個就是querystring模塊

  • 字符串查詢,用querystring處理
  • 使用URL模塊

3、模塊

  • node中的模塊分為三部分:
    1、系統自帶模塊
    2、自定義模塊:js文件和js文件之間有兩種合作的模式:
    • 某一個js文件中,提供了函數,供別人使用。 只需要暴露函數就行了; exports.msg=msg;
    • 某一個js文件,描述了一個類。 module.exports = People;
      3、第三方模塊
  • 我們可以使用文件夾來管理模塊,比如
    var bar = require("bar");
    那么Node.js將會去尋找node_modules目錄下的bar文件夾中的index.js去執行。

每一個模塊文件夾中,推薦都寫一個package.json文件,這個文件的名字不能改。node將自動讀取里面的配置。有一個main項,就是入口文件:

{
      "name": "wwr",
      "version": "1.0.1",
      "main" : "app.js"
}

package.json文件,要放到模塊文件夾的根目錄去。

  • 我們可以用package.json來管理依賴。
    在cmd中,使用npm init可以初始化一個package.json文件,用回答問題的方式生成一個新的package.json文件。
  • 這樣解決兩個問題
    1.我們的依賴包,可能在隨時更新,我們永遠想保持更新,或者某持某一個版本;
    2.項目越來越大的時候,給別人看的時候,沒有必要再次共享我們引用的第三方模塊。
    別人使用我們的項目的時候,只需要npm install 即可安裝相應的模塊
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容