最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

淺談node模塊與npm包管理工具

 更新時間:2018年01月03日 11:18:28   作者:范小飯_  
這篇文章主要介紹了node模塊與npm包管理工具,小編覺得挺不錯的,現在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧

在Node.js中,以模塊為單位劃分所有的功能,并且提供了一個完整的模塊加載機制,所以我們可以將應用程序劃分為各個不同的部分,并且對這些部分進行很好的協同管理。通過將各種可重用代碼編寫在各種模塊中的方法,可以大大減少應用程序的代碼量,提高應用程序的開發(fā)效率以及應用程序代碼的可讀性。通過模塊加載機制,可以將各種第三方模塊引入到我們的應用程序中。

在node.js中,提供npm包管理工具,用于從第三方網站上下載各種Node.js包。

一、模塊

1.1 加載模塊

在Node.js中,以模塊為單位劃分所有的功能,一個Node.js應用程序由大量的模塊組成,每一個模塊都是一個JavaScript文件,在加載node.js中預先定義的核心模塊,我們只需要require('模塊名'),例如require('http'),在將第三方類庫引入到我們的應用程序時,需要指定該文件的完整路徑及文件名,例如 require('./script/foo.js')

1.2 訪問模塊

1.2.1使用exports對象訪問

在一個模塊文件中定義變量、函數或對象只在該模塊內有效,當你需要從外部模塊引用這些變量、函數或對象時,需要再改模塊內,例如,建一個testModule.js,代碼如下:

var testVar = "Can you see me now ? ";
var funName = function(name){
  console.log('My name is' + name);
}
exports.testVar = testVar ;
exports.funName = funName ;

那么我們想在http.js中使用這些變量、函數或對象,可在http.js中書寫如下代碼:

var test1 = require('./testModule.js');
// 通過test1訪問testModule.js模塊內的testVar變量 和funName函數
console.log(test1.testVar)
test1.funName('Luckfine')

node 運行下這個http.js node http.js

運行結果如下


1.2.2使用module.exports對象訪問

當你需要從外部模塊引用這些變量、函數或對象時,使用exports對象,也可以使用module.exports,但是需要將模塊定義一個類時,只能用module.exports。

例如定義一個testModule類,在testModule.js中如下代碼:

var _name,_age
var name = '',age = 0;
var foo = function(name,age){
  _name = name ; 
  _age = age ;
}
// 獲取私有變量_name的變量只
foo.prototype.GetName = function(name){
  return _name;
};
// 設置私有變量_name的變量值
foo.prototype.SetName = function(name){
  _name = name;
}
// 獲取私有變量_age的變量只
foo.prototype.GetAge = function(age){
  return _age;
};
// 設置私有變量_name的變量值
foo.prototype.SetAge = function(age){
  _age = age;
}
foo.prototype.name = name;
foo.prototype.age = age;
module.exports = foo;

那么我們想在http.js中使用這個類的變量、函數或對象,可在http.js中書寫如下代碼:

var foo = require('./testModule.js');
var myFoo = new foo('Luckfine',18);

console.log('獲取修改前的私有變量值')
console.log(myFoo.GetName());
console.log(myFoo.GetAge());

console.log('修改私有變量');
myFoo.SetName('Baby');
myFoo.SetAge(16);

console.log('獲取修改后的私有變量值')
console.log(myFoo.GetName());
console.log(myFoo.GetAge());


console.log('獲取修改前的公有變量值')
console.log(myFoo.name);
console.log(myFoo.age);

console.log('修改公有變量')
myFoo.name = "Tom";
myFoo.age = 20;

console.log('獲取修改后的公有變量值')
console.log(myFoo.name);
console.log(myFoo.age);

然后在iTerm中運行node http.js命令,運行結果如下所示


總結以上:

也就是說,js文件和js文件之間有兩種合作的模式:
1) 某一個js文件中,提供了函數,供別人使用。 只需要暴露函數就行了; exports.msg=msg;
2) 某一個js文件,描述了一個類。 module.exports = People;

二、npm包管理

npm是跟隨Node.js一起的包管理工具,能解決Node.js代碼部署上的很多問題,當我們使用npm去安裝一些第三方庫的時候,安裝包會放在運行npm命令時所在的目錄中的node_modules文件夾中,如果當前目錄下沒有node_modules,會在當前目錄下生成node_modules目錄,并把我們需要的第三方庫放在node_modules中。

所以在安裝的時候,要注意,命令提示符所在的位置。

安裝第三方庫的命令  npm install 模塊名字, 假如我們需要安裝express,那么只需要在命令行中輸入npm install express

1.我們的依賴包,可能在隨時更新,我們永遠想保持更新,或者某持某一個版本;
2.項目越來越大的時候,給別人看的時候,沒有必要再次共享我們引用的第三方模塊。

所以我們可以使用package.json來管理依賴包。

在cmd中,使用npm init可以初始化一個package.json文件,用回答問題的方式生成一個新的package.json文件。

生成package.json的作用就是,如果一不小心我們丟了什么依賴,那么只要我們直接npm install就可以安裝package.json中的缺失的依賴;

package.json中版本號前面有一個尖角號,表示固定版本,即固定使用我現在安裝的版本;

例如我們現在新建一個文件夾

1、新建文件夾

我們現在需要安裝一個第三方庫express,就先進入這個文件夾,打開命令行,在此輸入 npm install express'' 等命令行完成之后,我們會看到在文件夾中就新建了一個node_modules文件夾,并且把我們需要的庫已經安裝在文件夾中

2、安裝后文件夾中內容

然后我們需要一個package.json管理我們的包,就可以在命令行中輸入npm init,這時可已根據命令行的提示回答問題建立package.json

3、建立package.json

那么我們這個項目的一些依賴,版本號,描述,作者等都可以通過package.json進行相應管理。

4、包管理

我這個包管理內容比較少,那么正常情況下package.jaon都有如下內容

 

三、模塊對象的屬性

這個作為更深入的了解。

在模塊文件內部,可以訪問當前模塊的如下一些屬性。

module.id : 表示該模塊文件的絕對路徑。

module.filename :屬性值為當前模塊的文件名

module.loaded :屬性值為布爾值,當屬性值為false時表示模塊尚未加載完畢,反之為加載完畢。

module.parent:屬性值為當前模塊的父模塊對象,即調用當前模塊的模塊對象

module.children:屬性值為一個數組,其中存放了當前模塊所有子模塊對象,即當前模塊中已加載的所有模塊對象。

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

相關文章

  • 發(fā)布一款npm包幫助理解npm的使用

    發(fā)布一款npm包幫助理解npm的使用

    這篇文章主要介紹了發(fā)布一款npm包幫助理解npm的使用,小編覺得挺不錯的,現在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2019-01-01
  • nodejs版本管理工具nvm的安裝與使用小結

    nodejs版本管理工具nvm的安裝與使用小結

    在項目開發(fā)過程中,使用到vue框架技術,需要安裝node下載項目依賴,本文主要介紹了nodejs版本管理工具nvm的安裝與使用小結,具有一定的參考價值,感興趣的可以了解一下
    2024-01-01
  • Node.js 多線程實戰(zhàn)小結

    Node.js 多線程實戰(zhàn)小結

    在?Node.js?的世界中,多線程技術一直是一個受到廣泛關注的領域,本文主要介紹了Node.js 多線程實戰(zhàn)小結,具有一定的參考價值,感興趣的可以了解一下
    2024-01-01
  • Ubuntu服務器上安裝Node.js的三種不同方法介紹

    Ubuntu服務器上安裝Node.js的三種不同方法介紹

    Node.js是一個強大的 JavaScript 運行時環(huán)境,使開發(fā)者能夠使用 JavaScript 創(chuàng)建服務器端應用程序,本文將詳細介紹三種安裝 Node.js 的方法,大家根據具體需求選擇最適合的安裝方式
    2025-03-03
  • mac上node.js環(huán)境的安裝測試

    mac上node.js環(huán)境的安裝測試

    這篇文章主要為大家詳細介紹了mac上node.js環(huán)境的安裝測試,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-07-07
  • nodejs爬蟲遇到的亂碼問題匯總

    nodejs爬蟲遇到的亂碼問題匯總

    這篇文章主要給大家匯總介紹了作者再制作nodejs爬蟲遇到的亂碼問題,有相同問題的小伙伴可以參考下
    2017-04-04
  • 詳解如何使用node.js的開發(fā)框架express創(chuàng)建一個web應用

    詳解如何使用node.js的開發(fā)框架express創(chuàng)建一個web應用

    這篇文章主要介紹了詳解如何使用node.js的開發(fā)框架express創(chuàng)建一個web應用,網上各種搜索后,整理了下快速搭建express框架的步驟。非常具有實用價值,需要的朋友可以參考下
    2018-12-12
  • 詳解node.js 下載圖片的 2 種方式

    詳解node.js 下載圖片的 2 種方式

    本文通過實例代碼給大家介紹了node.js 下載圖片的 2 種方式及下載遠程圖片的實現代碼,非常不錯,具有參考借鑒價值,需要的朋友參考下吧
    2018-03-03
  • nodejs中各種加密算法的實現詳解

    nodejs中各種加密算法的實現詳解

    這篇文章主要給大家介紹了關于nodejs中各種加密算法的實現方法,文中通過示例代碼介紹的非常詳細,對大家學習或者使用nodejs具有一定的參考學習價值,需要的朋友們下面來一起學習學習吧
    2019-07-07
  • node.js中express中間件body-parser的介紹與用法詳解

    node.js中express中間件body-parser的介紹與用法詳解

    這篇文章主要給大家介紹了關于node.js中express中間件body-parser的相關資料,文章通過示例代碼介紹的非常詳細,對大家具有一定的參考學習價值,需要的朋友們下面來一起看看吧。
    2017-05-05

最新評論

阳曲县| 辽中县| 霍林郭勒市| 钟祥市| 措勤县| 苍梧县| 武宁县| 修文县| 拜泉县| 湘潭县| 潞城市| 定西市| 西畴县| SHOW| 达州市| 聊城市| 陕西省| 元江| 丰原市| 青海省| 安平县| 闽清县| 吉安县| 丹江口市| 哈密市| 淄博市| 墨脱县| 琼结县| 凤山市| 理塘县| 资中县| 前郭尔| 钟祥市| 进贤县| 同德县| 广饶县| 塔河县| 乌拉特后旗| 乌拉特后旗| 上饶市| 北辰区|