欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Node.js的模塊化機(jī)制和Buffer對(duì)象詳解

 更新時(shí)間:2022年02月23日 17:02:51   作者:Han_Zhou_Z  
這篇文章主要為大家詳細(xì)介紹了Node.js的模塊化機(jī)制和Buffer對(duì)象,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來(lái)幫助

一、Node.js的模塊化機(jī)制

Node應(yīng)用是由模塊組成的,Node遵循了CommonJS的模塊規(guī)范,來(lái)隔離每個(gè)模塊的作用域,使每個(gè)模塊在它自身的命名空間中執(zhí)行。

1、什么是CommonJS模塊規(guī)范

CommonJS 是一套代碼規(guī)范, 目的是為了構(gòu)建 JavaScript 在瀏覽器之外的生態(tài)系統(tǒng) (服務(wù)器端, 桌面端).通過(guò)該規(guī)范使JavaScript具備開(kāi)發(fā)復(fù)雜應(yīng)用、跨平臺(tái)的能力

2、CommonJS模塊規(guī)范化的內(nèi)容

(1)導(dǎo)出模塊:moudle.exports 導(dǎo)出模塊

(2)導(dǎo)入模塊:require('模塊名稱')

//創(chuàng)建一個(gè)demo.js
module.exports.name = 'yunxi'
module.exports.age = 78
module.exports.getName = function(){
    console.log("姓名:",this.name);
}
module.exports.getAge = function(){
    console.log("年齡:",this.age);
}
//創(chuàng)建text.js進(jìn)行測(cè)試
const person = require('./demo')
person.getName()
person.getAge()
//輸出:姓名: yunxi
//     年齡: 78
//創(chuàng)建text.js進(jìn)行測(cè)試
const person = require('./demo')
person.getName()
person.getAge()
//輸出:姓名: yunxi
//     年齡: 78
//創(chuàng)建text.js,進(jìn)行輸出測(cè)試
const Person = require('./demo')
const p1 = new Person('小王',39)
const p2 = new Person('小趙',29)
p1.getName()
p1.getAge()
console.log('---------------');
p2.getName()
p2.getAge()
//    姓名: 小王
//    年齡: 39
//    ---------------
//    姓名: 小趙
//    年齡: 29

3、每個(gè)導(dǎo)出的模塊都有一個(gè)moudle對(duì)象,該對(duì)象包含的屬性有:

(1)moudle.exports:表示當(dāng)前模塊對(duì)外輸出的接口,其他模塊引用的是moudle.exports導(dǎo)出的變量

(2)exports變量:指向moudle.exports,為了操作的方便,它不能直接指向一個(gè)值

4、使用require導(dǎo)入模塊

導(dǎo)入并執(zhí)行一個(gè)JavaScript文件,返回的是一個(gè)exports對(duì)象,若沒(méi)有找到相應(yīng)的對(duì)象就報(bào)錯(cuò)

(1)模塊輸出是一個(gè)函數(shù),則該函數(shù)的輸出接口不能用exports變量來(lái)導(dǎo)出,必須用戶moudle.exports導(dǎo)出

(2)加載規(guī)則:

  • A、用來(lái)加載js文件,默認(rèn)的文件擴(kuò)展名為.js
  • B、根據(jù)參數(shù)的不同格式,去不同路徑下查找相應(yīng)的js文件
    • './(../)':表示加載路徑是相對(duì)路徑
    • '/':表示加載路徑是絕對(duì)路徑

既不是'./(../)'也不是'/':表示加載的模式是node的核心模塊,在node安裝路徑的node_modules中

(3)require的內(nèi)部處理的流程

require -->module.exports-->moudle._load

二、Buffer對(duì)象

是一個(gè)Node中的全局對(duì)象,可以直接使用,不需要使用require導(dǎo)入。該對(duì)象提供了在Node中處理二進(jìn)制數(shù)據(jù)的接口

1、用來(lái)彌補(bǔ)JavaScript在二進(jìn)制數(shù)據(jù)處理上不足。

2、Buffer是一個(gè)構(gòu)造函數(shù)

Buffer對(duì)象是V8引擎分配的一段內(nèi)存,類似數(shù)組,每個(gè)單元就是一個(gè)字節(jié),存放的0~255之間的數(shù)據(jù)

3、Buffer的基本操作:

(1)創(chuàng)建:let bytes = new Buffer(size)

(2)切片:bytes.slice(start,end)

(3)拷貝:bytes.copy(目標(biāo)緩沖區(qū),目標(biāo)緩沖區(qū)的起始位置,源緩沖區(qū)的起始位置,源緩沖區(qū)的結(jié)束位置)

(4)Buffer和字符串之間的互換:支持的編碼格式(ascii碼、utf8)

(5)Buffer和二進(jìn)制數(shù)組的區(qū)別:

A、二進(jìn)制數(shù)組:

Int8Array:-128~127

Uint8Array:0~255

Int16Array:-32768~32767

UInt16Array:0~65535

4、Buffer類:

Buffer類是基于Uint8Array的,因此其值為0~255的整數(shù)數(shù)組

總結(jié)

本篇文章就到這里了,希望能夠給你帶來(lái)幫助,也希望您能夠多多關(guān)注腳本之家的更多內(nèi)容!    

相關(guān)文章

  • socket.io與pm2(cluster)集群搭配的解決方案

    socket.io與pm2(cluster)集群搭配的解決方案

    這篇文章主要給大家介紹了關(guān)于socket.io與pm2(cluster)集群搭配的解決方案,文中介紹的非常詳細(xì),對(duì)大家具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面跟著小編一起來(lái)看看吧。
    2017-06-06
  • node.js中的fs.truncate方法使用說(shuō)明

    node.js中的fs.truncate方法使用說(shuō)明

    這篇文章主要介紹了node.js中的fs.truncate方法使用說(shuō)明,本文介紹了fs.truncate的方法說(shuō)明、語(yǔ)法、接收參數(shù)、使用實(shí)例和實(shí)現(xiàn)源碼,需要的朋友可以參考下
    2014-12-12
  • npm install安裝模塊-save和-save-dev命令的區(qū)別

    npm install安裝模塊-save和-save-dev命令的區(qū)別

    這篇文章介紹了npm install安裝模塊-save和-save-dev命令的區(qū)別,對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2022-06-06
  • Node.js連接mongodb實(shí)例代碼

    Node.js連接mongodb實(shí)例代碼

    這篇文章主要介紹了Node.js連接mongodb實(shí)例代碼,這里整理了詳細(xì)的代碼,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-06-06
  • node.js中的fs.readFileSync方法使用說(shuō)明

    node.js中的fs.readFileSync方法使用說(shuō)明

    這篇文章主要介紹了node.js中的fs.readFileSync方法使用說(shuō)明,本文介紹了fs.readFileSync的方法說(shuō)明、語(yǔ)法、接收參數(shù)、使用實(shí)例和實(shí)現(xiàn)源碼,需要的朋友可以參考下
    2014-12-12
  • 詳解基于Koa2開(kāi)發(fā)微信二維碼掃碼支付相關(guān)流程

    詳解基于Koa2開(kāi)發(fā)微信二維碼掃碼支付相關(guān)流程

    這篇文章主要介紹了詳解基于Koa2開(kāi)發(fā)微信二維碼掃碼支付相關(guān)流程,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2018-05-05
  • 初識(shí)NodeJS服務(wù)端開(kāi)發(fā)入門(Express+MySQL)

    初識(shí)NodeJS服務(wù)端開(kāi)發(fā)入門(Express+MySQL)

    本篇文章主要介紹了初識(shí)NodeJS服務(wù)端開(kāi)發(fā)入門(Express+MySQL),可以對(duì)數(shù)據(jù)庫(kù)中的一張表進(jìn)行簡(jiǎn)單的CRUD操作,有興趣的可以了解一下。
    2017-04-04
  • nodejs模塊學(xué)習(xí)之connect解析

    nodejs模塊學(xué)習(xí)之connect解析

    這篇文章主要介紹了nodejs模塊學(xué)習(xí)之connect解析,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-07-07
  • node連接MySQL數(shù)據(jù)庫(kù)的3種方式總結(jié)

    node連接MySQL數(shù)據(jù)庫(kù)的3種方式總結(jié)

    現(xiàn)在前端基本上都會(huì)用一些NodeJs,想必也想自己寫一些API或者個(gè)人博客的后臺(tái)系統(tǒng),這些就離不開(kāi)連接數(shù)據(jù)庫(kù)的問(wèn)題,下面這篇文章主要給大家介紹了關(guān)于node連接MySQL數(shù)據(jù)庫(kù)的3種方式,需要的朋友可以參考下
    2022-08-08
  • node.js文件上傳重命名以及移動(dòng)位置的示例代碼

    node.js文件上傳重命名以及移動(dòng)位置的示例代碼

    本篇文章主要介紹了node.js文件上傳重命名以及移動(dòng)位置的示例代碼,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2018-01-01

最新評(píng)論