国产亚洲精品福利在线无卡一,国产精久久一区二区三区,亚洲精品无码国模,精品久久久久久无码专区不卡

當前位置: 首頁 > news >正文

網(wǎng)站域名使用費多少網(wǎng)絡(luò)營銷與直播電商學什么

網(wǎng)站域名使用費多少,網(wǎng)絡(luò)營銷與直播電商學什么,wordpress升級報錯,如何查網(wǎng)站備案號Node.js:模塊 & 包 模塊module對象 包npm安裝包配置文件鏡像源 分類 模塊 模塊化是指解決一個復雜問題時,自頂向下逐層把系統(tǒng)劃分成若干模塊的過程。對于整個系統(tǒng)來說,模塊是可組合、分解和更換的單元。 簡單來說,就是把一個…

Node.js:模塊 & 包

    • 模塊
      • module對象
      • npm
        • 安裝包
        • 配置文件
        • 鏡像源
      • 分類


模塊

模塊化是指解決一個復雜問題時,自頂向下逐層把系統(tǒng)劃分成若干模塊的過程。對于整個系統(tǒng)來說,模塊是可組合、分解和更換的單元。

簡單來說,就是把一個大問題拆分成一系列小問題,然后逐個解決的過程。這就像是搭樂高積木,不是直接建造一個巨大的城堡,而是先建造城堡,花園等幾個小部分,然后再把它們組合起來。

如果后續(xù)某些功能不需要了,或者某些功能需要更新,只需要操作對應(yīng)的模塊即可,不需要改動整個程序。

再比如說,可能兩個程序需要一個相同的功能,那么就就可以把這個模塊復制兩份,給不同的程序使用。

所以模塊可以提高代碼的復用性,可維護性。

Node.js 中根據(jù)模塊來源的不同,將模塊分為了3 大類:

  • 內(nèi)置模塊:內(nèi)置模塊是由 Node.js 官方提供的,例如 fspath、http
  • 自定義模塊:用戶創(chuàng)建的每個 js 文件,都是自定義模塊
  • 第三方模塊:由第三方開發(fā)出來的模塊,使用前需要先下載

想要加載一個模塊,可以使用require方法:

const obj = require('模塊名')
const obj = require('模塊路徑')

對于內(nèi)置模塊和第三方模塊,只需要傳入模塊名即可,如果是自定義模塊,就需要填入模塊的路徑。

比如:

const test = requits('./test.js')

自定義模塊一定是一個.js結(jié)尾的文件,所以也可以省略.js后綴:

const test = requits('./test')

模塊被導入時,模塊內(nèi)部的代碼會立刻執(zhí)行一次。

./test.js寫入以下代碼:

console.log('require test.js success')

在另一個文件中導入模塊:

const test = require('./test.js')
console.log(test)

輸出結(jié)果:

require test.js success
{}

./test.js中的代碼,就立刻執(zhí)行了一次,test變量拿到了一個空對象。


module對象

在模塊中定義的變量、方法,都只能在模塊內(nèi)部被訪問,這種模塊級別的訪問限制,稱為模塊作用域。

那么外部導入模塊后,又要如何訪問模塊的內(nèi)容?這就需要通過module對象了。

在每一個.js模塊中,都有一個module對象,這里面存儲了當前模塊的相關(guān)信息。

直接console.log輸出這個對象:

{id: '.',path: 'D:\\code_web\\test\\Node\\02',exports: {},filename: 'D:\\code_web\\test\\Node\\02\\main.js',loaded: false,children: [],paths: ['D:\\code_web\\test\\Node\\02\\node_modules','D:\\code_web\\test\\Node\\node_modules','D:\\code_web\\test\\node_modules','D:\\code_web\\node_modules','D:\\node_modules'],[Symbol(kIsMainSymbol)]: true,[Symbol(kIsCachedByESMLoader)]: false,[Symbol(kIsExecuting)]: true
}

可以看到一些文件的相關(guān)信息,其中exports: {}是一個空對象,通過exports這個屬性可以向外共享模塊的內(nèi)容,默認情況為空。當外界通過require導入模塊時,拿到的就是這個對象。

示例:

test.js中,將成員與方法添加到module.exports中:

console.log('require test.js success')module.exports.username = "張三"
module.exports.sayHello = function(){console.log(this.username + " say hello")
}

main.js中導入模塊,并調(diào)用函數(shù):

const test = require('./test.js')
console.log(test)test.sayHello()

輸出結(jié)果:

require test.js success
{ username: '張三', sayHello: [Function (anonymous)] }
張三 say hello

此時test變量,拿到的就是一個有內(nèi)容的對象,并且可以正常調(diào)用模塊內(nèi)的屬性與方法。

每次共享一個新的成員或方法,都要使用module.exports,這有點麻煩了。為此Node.js提供了exports對象,它與module.exports指向同一個對象,在編寫代碼時,可以使用簡寫。

exports.username = "張三"
exports.sayHello = function(){console.log(this.username + " say hello")
}

但是要注意,不要改變exports指向的對象。

exports = {username: "李四",sayHello: function(){console.log(this.username + " say hello")}
}

如果在某個模塊內(nèi)部這樣寫,等到模塊導入后,拿到的是一個空對象,而不是exports指向的對象。因為以上代碼相當于把exports指向了一個新的對象,此時module.exportsexports指向不同,導入模塊最終以module.exports為準,所以exports就失效了。


Node.js中,第三方模塊又稱為。

Node.js的內(nèi)置模塊功能較少,基于內(nèi)置模塊開發(fā)效率很低,因此很多第三方封裝了更加高級方便的模塊,并公開給大家使用。

npm

如果包太多,那么每個不同的包都要去不同的地方下載,這樣很麻煩。但是npm建立了一個包共享平臺,很多程序員都會把自己封裝的包提交到這個平臺,因此我們就可以通過npm來快速下載所需的包。

官方網(wǎng)址:

https://www.npmjs.com/
安裝包

下載包的命令:

npm install 包名
npm i 包名

iinstall的簡寫,兩種格式都可以下載包。

刪除包的命令:

npm uninstell 包名

下載一個moment包:

在這里插入圖片描述

這個包是一個時間相關(guān)的包,使用時直接以普通模塊的形式導入即可:

const moment = require('moment')const dt = moment().format('YYYY-MM-DD HH:mm:ss')
console.log(dt)

此處moment().format('YYYY-MM-DD HH:mm:ss'),用于格式化輸出當前時間。

輸出結(jié)果:

2024-10-30 20:40:36

配置文件

在第一次裝包后,同級目錄會出現(xiàn)以下文件:

在這里插入圖片描述

node_modules存儲了所有下載的包,比如剛下載的moment,而.package-lock,json是包的相關(guān)信息,內(nèi)容如下:

{"name": "02","lockfileVersion": 3,"requires": true,"packages": {"": {"dependencies": {"moment": "^2.30.1"}},"node_modules/moment": {"version": "2.30.1","resolved": "https://registry.npmjs.org/moment/-/moment-2.30.1.tgz","integrity": "sha512-uEmtNhbDOrWPFS+hdjFCBfy9f2YoyzRpwcl+DqpC6taX21FzsTLQVbMV/W7PzNSX6x/bhC1zA3c2UQ5NzH6how==","license": "MIT","engines": {"node": "*"}}}
}

這里面保存了下載的包的相關(guān)信息,比如下載版本,下載來源等等。

如果想要下載指定版本的包,語法如下:

npm install 包名@版本號
npm i 包名@版本號

例如安裝moment:2.22.2版本:

在這里插入圖片描述

顯示修改了一個包,也就是之前的2.30.1版本被覆蓋了。

除去node_modules.package-lock,json,還可以找到一個package,json文件:

在這里插入圖片描述

這個文件與node_modules同級,內(nèi)部包含dependencies屬性:

{"dependencies": {"moment": "^2.30.1"}
}

比如再下載一個jQuery

在這里插入圖片描述

此時package,json文件更新:

{"dependencies": {"jquery": "^3.7.1","moment": "^2.30.1"}
}

這里記錄了所有下載過的包,當拿到一個項目時,往往不會提供node_modules目錄,因為這個目錄很大,不利于傳輸。因此會提供一個package,json文件,這個文件可以幫助快速下載所有依賴的包。

npm install
npm i

npm install不帶任何包名,就會去下載package,json文件中指定的所有包,快速初始化項目。

package,json文件不在node_modules目錄內(nèi)部,而是與node_modules同級,就是因為多人協(xié)作時node_modules往往不會發(fā)送給同事,而是發(fā)送package,json來初始化項目。


鏡像源

默認情況下,npm會去https://registry.npmjs.org/這個網(wǎng)址下載包,但是這是一個國外的網(wǎng)址,下載速度比較慢。

為此,淘寶在國內(nèi)建立了一個鏡像站https://registry.taobao.org/,這個網(wǎng)站會實時同步https://registry.npmjs.org/,所以國內(nèi)用戶可以修改鏡像源為這個淘寶的鏡像源,提升下載效率。

查看當前鏡像源:

npm config get registry

安裝nrm工具:

npm i nrm -g

在這里插入圖片描述

查看可用的鏡像源:

nrm ls

在這里插入圖片描述

切換到淘寶鏡像源:

nrm use taobao

在這里插入圖片描述


分類

包分為項目包全局包

  • 項目包:只供一個項目使用的,安裝到node_modules目錄下的包
  • 全局包:主機上所有項目都可以使用的包

如果想要安裝或卸載全局包,只需要加上-g參數(shù)即可:

npm i -g 包名
npm uninstall -g 包名

先前安裝的nrm,就是按照全局安裝的,這樣后續(xù)所有項目下載包時,都會使用淘寶的鏡像源。


http://m.aloenet.com.cn/news/44154.html

相關(guān)文章:

  • 武漢電商網(wǎng)站建設(shè)sem是什么設(shè)備
  • 世界十大建筑設(shè)計公司排名外鏈seo推廣
  • 廣東裝飾公司網(wǎng)站建設(shè)防惡意競價點擊軟件
  • wordpress做資源下載站網(wǎng)站宣傳的方法有哪些
  • 青海省建設(shè)廳官方網(wǎng)站百度賬號注冊平臺
  • 水果網(wǎng)站策劃書百度站長資源
  • 廈門網(wǎng)站排名優(yōu)化費用百度網(wǎng)盤鏈接
  • 如何請人做網(wǎng)站爆款采集推廣引流軟件
  • 圖片站wordpress網(wǎng)站推廣優(yōu)化排名
  • 騰云建站靠譜嗎什么是網(wǎng)站
  • WordPress生成電商小程序南昌seo教程
  • 域名申請到網(wǎng)站建設(shè)教程廣告銷售如何尋找客戶
  • 怎么選擇企業(yè)建站公司網(wǎng)站關(guān)鍵字優(yōu)化價格
  • 個人網(wǎng)站 名字百度智能云建站
  • 做百度網(wǎng)站一般多少錢搜索引擎分析論文
  • 秦皇島優(yōu)化營商環(huán)境北京網(wǎng)站優(yōu)化服務(wù)商
  • 唐山直銷系統(tǒng)開發(fā)關(guān)鍵詞seo深圳
  • 網(wǎng)站建設(shè)的市場需求網(wǎng)站維護
  • 免費建網(wǎng)站哪個好站長工具seo綜合查詢工具
  • 煙臺建設(shè)集團網(wǎng)站愛鏈接外鏈購買
  • 做互聯(lián)網(wǎng)網(wǎng)站賺錢嗎seo關(guān)鍵詞推廣渠道
  • 中小企業(yè)門戶網(wǎng)站建設(shè)策略北海seo快速排名
  • 云南城鄉(xiāng)建設(shè)網(wǎng)站如何自己創(chuàng)建網(wǎng)址
  • 網(wǎng)站的相關(guān)鏈接怎么做濟南seo網(wǎng)絡(luò)優(yōu)化公司
  • wordpress軟件下載源碼搜索引擎優(yōu)化的名詞解釋
  • 網(wǎng)站建設(shè)銷售實習報告臨沂網(wǎng)站建設(shè)
  • 什么平臺引流最快太原seo網(wǎng)絡(luò)優(yōu)化招聘網(wǎng)
  • 自建網(wǎng)站成都搜索引擎營銷方案
  • 網(wǎng)站開發(fā)工具webs國家免費培訓機構(gòu)
  • 教育機構(gòu)電商網(wǎng)站建設(shè)加盟福州seo招聘