node.js-模塊化介紹

1.node是單線程的
但是可以做一個分佈式,在idea/webstorm中,我們可以引入node的插件,
然後idea會默認配置node服務器的可執行程序的位置,然後我們可以通過該插件直接在idea中運行js文件。

2.在es5之後,前端有了模塊化開發的思想
一個js文件就是一個模塊,通過 require()函數來引入外部模塊我們使用require引入
一個模塊之後,對於我們自己定義的模塊,當前目錄必須加上 ./ 不然運行會拋出異常。
假如在module2.js的內容如下
var a=1;var b=2;
module1.js的內容如下
var md=require('./module2.js');
如果執行console.log(md.a);會顯示未定義,這是因爲node中,每一個文件中的js代碼都是獨立運行
通過該方式引入另外一個模塊,引入的模塊相當於一個自調用函數,所以他找不到a變量。即閉包

但是我們可以通過exports來導出該變量
let a=1;
exports.a=a;

模塊分爲兩大類
    1:核心模塊,由node引擎提供的模塊,npm中的模塊
    2:文件模塊,由用戶自己創建的
3.在node中,我們沒有window這個全局變量,但是有global

4.導出module.exports與exports的區別
在我們導出一個對象時
let a=1;
exports.a=a;
module.exports={
    name:'豬豬俠',
    age:5,
    getName:function() {
        console.log(this.name);
    }
}
在另外一個對象用引用調用,發現a爲undefined ,把其中的module.exports換成exports
發現導入對象未定義,a變量定義

原因: 棧內存和堆內存的概念
exports指向的是module.exports對象,在其他模塊引入的對象爲module.exports對象
所以exports={}的方式導出的對象在堆內存中並不是同一個對象
exports的方式導出,只能以exports.的方式

5.npm命令
npm -v 查看npm版本
npm init 幫助我們創建package.json文件
npm install/i 包名 下載包
npm remove/r 包名 刪除包
npm install 包名 --save 安裝包並添加依賴搭配package.json
npm install 下載當前package.json中所有的依賴中的包

6.搜索包
npm下載的命令都在node_modules中,通過require引用包的時候,
會在當前目錄中尋找node_modules的文件夾下的包,如果不存在則去
上一級的node_modules包中尋找,一直到磁盤的根目錄。

 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章