国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Node.js |(三)Node.js API:path模塊及Node.js 模塊化 | 尚硅谷2023版Node.js零基礎(chǔ)視頻教程

這篇具有很好參考價值的文章主要介紹了Node.js |(三)Node.js API:path模塊及Node.js 模塊化 | 尚硅谷2023版Node.js零基礎(chǔ)視頻教程。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

學(xué)習視頻:尚硅谷2023版Node.js零基礎(chǔ)視頻教程,nodejs新手到高手

Node.js |(三)Node.js API:path模塊及Node.js 模塊化 | 尚硅谷2023版Node.js零基礎(chǔ)視頻教程,# 高級技術(shù):Node.js,web開發(fā)——前端,node.js,前端

??path模塊

Node.js |(三)Node.js API:path模塊及Node.js 模塊化 | 尚硅谷2023版Node.js零基礎(chǔ)視頻教程,# 高級技術(shù):Node.js,web開發(fā)——前端,node.js,前端

//導(dǎo)入 fs
const fs = require('fs');
const path = require('path');
//寫入文件,之前提到過可以借助__dirname規(guī)范絕對路徑,但其實不是很好
//fs.writeFileSync(__dirname + '/index.html', 'love');


//resolve:拼接規(guī)范(分隔符統(tǒng)一)的絕對路徑
console.log(path.resolve(__dirname, './index.html'));
//可以不寫./也表示絕對路徑
console.log(path.resolve(__dirname, 'index.html'));

//sep:獲取操作系統(tǒng)的路徑分隔符
console.log(path.sep); // windows下是\,Linux下是/

//parse解析路徑并返回對象
//console.log(__filename); //獲取文件的絕對路徑
let str = 'C:\\Users\\lalayouyi\\Desktop\\node\\03_path模塊\\代碼\\path.js ';
console.log(path.parse(str));

//basename:快速獲取文件名
console.log(path.basename(str));

//dirname:獲取路徑的目錄名
console.log(path.dirname(str));

//extname:獲取路徑的擴展名
console.log(path.extname(str));

Node.js |(三)Node.js API:path模塊及Node.js 模塊化 | 尚硅谷2023版Node.js零基礎(chǔ)視頻教程,# 高級技術(shù):Node.js,web開發(fā)——前端,node.js,前端

??Node.js模塊化

??介紹

Node.js |(三)Node.js API:path模塊及Node.js 模塊化 | 尚硅谷2023版Node.js零基礎(chǔ)視頻教程,# 高級技術(shù):Node.js,web開發(fā)——前端,node.js,前端

??模塊暴露數(shù)據(jù)

??模塊初體驗

  • 創(chuàng)建me.js
    //聲明函數(shù)
    function lala(){
    console.log('啦啦啦....');
    }
    //暴露數(shù)據(jù)
    module.exports = lala;
    
  • 創(chuàng)建index.js
    //導(dǎo)入模塊
    const lala = require('./me.js');
    //調(diào)用函數(shù)
    lala();
    

??暴露數(shù)據(jù)

  • 模塊暴露數(shù)據(jù)的方式有兩種:

    • module.exports = value
    • exports.name = value
    //me.js
    //聲明一個函數(shù)
    function lala(){
      console.log('lalala...');
    }
    
    function lolo(){
      console.log('lololo....');
    }
    
    //暴露數(shù)據(jù)(一)
    module.exports = {
      lala,
      lolo
    }
    
    //exports暴露數(shù)據(jù)(二)
    exports.lolo = lolo;
    exports.lala = lala;
    
    //index.js
    //導(dǎo)入模塊
    const me = require('./me.js');
    
    //輸出 me
    console.log(me);
    me.lala();
    me.lolo();
    

    Node.js |(三)Node.js API:path模塊及Node.js 模塊化 | 尚硅谷2023版Node.js零基礎(chǔ)視頻教程,# 高級技術(shù):Node.js,web開發(fā)——前端,node.js,前端


  • module.exports可以暴露任意數(shù)據(jù)。

    //me.js
    module.exports = 'iloveyou521';
    
    //導(dǎo)入模塊
    const me = require('./me.js');
    //輸出 me
    console.log(me);
    

    Node.js |(三)Node.js API:path模塊及Node.js 模塊化 | 尚硅谷2023版Node.js零基礎(chǔ)視頻教程,# 高級技術(shù):Node.js,web開發(fā)——前端,node.js,前端


  • 不能使用exports = value的形式暴露數(shù)據(jù),模塊內(nèi)部 module 與 exports 的隱式關(guān)系exports = module.exports = {} ,require 返回的是目標模塊中module.exports的值。
    Node.js |(三)Node.js API:path模塊及Node.js 模塊化 | 尚硅谷2023版Node.js零基礎(chǔ)視頻教程,# 高級技術(shù):Node.js,web開發(fā)——前端,node.js,前端

    //不能使用 `exports = value`的形式暴露數(shù)據(jù)
    //exports = 'iloveyou' //最后的輸出是{},也就是只會得到一個空對象
    
    //exports = module.exports = {}
    console.log(module.exports);//{}
    console.log(module.exports === exports);//true
    

??導(dǎo)入文件模塊

  • 在模塊中使用require傳入文件路徑即可引入文件。

  • require使用的一些注意事項:

    • 對于自己創(chuàng)建的模塊,導(dǎo)入時路徑建議寫相對路徑 ,且不能省略 ./ 和 …/。
    • js 和 json 文件導(dǎo)入時可以不用寫后綴,c/c++編寫的 node 擴展文件也可以不寫后綴,但是一般用不到。
    • 如果導(dǎo)入其他類型的文件,會以 js 文件進行處理。
    • 導(dǎo)入node.js內(nèi)置模塊時,直接require模塊的名字即可,無需加 ./ 和 …/
    //導(dǎo)入模塊  
    const tiemo = require('./me.js');
    //調(diào)用函數(shù)
    tiemo();
    
    //省略后綴 JS
    const tiemo1 = require('./me');
    tiemo1();
    
    //導(dǎo)入 JSON 文件
    const duanzi = require('./duanzi');
    console.log(duanzi);//對象
    
    //導(dǎo)入其他類型的文件
    const test = require('./test');
    console.log(test);
    

    Node.js |(三)Node.js API:path模塊及Node.js 模塊化 | 尚硅谷2023版Node.js零基礎(chǔ)視頻教程,# 高級技術(shù):Node.js,web開發(fā)——前端,node.js,前端

??導(dǎo)入文件夾的情況

  • 如果導(dǎo)入的路徑是個文件夾,則會
    • 首先檢測該文件夾下package.json文件中 main 屬性對應(yīng)的文件
    • 如果存在則導(dǎo)入,反之如果文件不存在會報錯。
    • 如果 main 屬性不存在,或者 package.json不存在,則會嘗試導(dǎo)入文件夾下的index.jsindex.json,如果還是沒找到,就會報錯。

針對這個main屬性相關(guān),大數(shù)據(jù)實驗實操中就有不少類似的main不對應(yīng)導(dǎo)致的報錯,應(yīng)該還對應(yīng)之后的包管理??

??導(dǎo)入模塊的基本流程

  • p72視頻講解指路

  • require導(dǎo)入自定義模塊的基本流程:文章來源地址http://www.zghlxwxcb.cn/news/detail-643745.html

    • 將相對路徑轉(zhuǎn)為絕對路徑,定位目標文件。
    • 緩存檢測。
    • 讀取目標文件代碼。
    • 包裹為一個函數(shù)并執(zhí)行(自執(zhí)行函數(shù))。通過arguments.callee.toString()查看自執(zhí)行函數(shù)。
    • 緩存模塊的值。
    • 返回module.exports的值。
      Node.js |(三)Node.js API:path模塊及Node.js 模塊化 | 尚硅谷2023版Node.js零基礎(chǔ)視頻教程,# 高級技術(shù):Node.js,web開發(fā)——前端,node.js,前端
/**
 * 偽代碼
 * 理解為node.js里require的實現(xiàn)
 */
function require(file){
  //1. 將相對路徑轉(zhuǎn)為絕對路徑,定位目標文件
  let absolutePath = path.resolve(__dirname, file);
  //2. 緩存檢測
  if(caches[absolutePath]){
    return caches[absolutePath];
  }
  //3. 讀取文件的代碼
  let code = fs.readFileSync(absolutePath).toString();
  //4. 包裹為一個函數(shù) 然后執(zhí)行
  let module = {};
  let exports = module.exports = {};
  (function (exports, require, module, __filename, __dirname) {
    const test = {
      name: '尚硅谷'
    }
    module.exports = test;  
    //輸出
    console.log(arguments.callee.toString());
  })(exports, require, module, __filename, __dirname)
  //5. 緩存結(jié)果
  caches[absolutePath] = module.exports;
  //6. 返回 module.exports 的值
  return module.exports;
}

const m = require('./me.js');

??CommonJS規(guī)范

  • module.exports 、 exports 以及 require 這些都是 CommonJS 模塊化規(guī)范中的內(nèi)容。
  • 而 Node.js 是實現(xiàn)了 CommonJS 模塊化規(guī)范,二者關(guān)系有點像 JavaScript 與 ECMAScript。

到了這里,關(guān)于Node.js |(三)Node.js API:path模塊及Node.js 模塊化 | 尚硅谷2023版Node.js零基礎(chǔ)視頻教程的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔相關(guān)法律責任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • Node.js模塊化

    說明:將復(fù)雜的程序文件,拆分多個文件的過程。模塊的內(nèi)部數(shù)據(jù)是私有的,不過模塊可以暴露內(nèi)部數(shù)據(jù)供其他模塊使用。 說明:編碼時是按照模塊一個一個編碼的,整個項目就是一個模塊化的項目。 3.模塊化的優(yōu)勢 說明: 提高代碼的復(fù)用性:模塊化可以將代碼分解為可重

    2024年02月12日
    瀏覽(20)
  • Node.js--模塊化

    1.1 什么是模塊化與模塊 將一個復(fù)雜的程序文件依據(jù)一定規(guī)則(規(guī)范)拆分成多個文件的過程稱之為 模塊化 其中拆分出的 每個文件就是一個模塊 ,模塊的內(nèi)部數(shù)據(jù)都是私有的,不過模塊可以暴露內(nèi)部數(shù)據(jù)以便其他模塊使用 1.2 什么是模塊化項目 編碼時是按照模塊一個一個編碼

    2024年02月16日
    瀏覽(45)
  • (三)Node.js - 模塊化

    (三)Node.js - 模塊化

    Node.js中根據(jù)模塊來源不同,將模塊分為了3大類,分別是: 內(nèi)置模塊 :內(nèi)置模塊由Node.js官方提供的,例如fs、path、http等 自定義模塊 :用戶創(chuàng)建的每個.js文件,都是自定義模塊 第三方模塊 :由第三方開發(fā)出來的模塊,并非官方提供的內(nèi)置模塊,也不是用戶創(chuàng)建的自定義模塊

    2024年02月13日
    瀏覽(19)
  • 10-Node.js模塊化

    10-Node.js模塊化

    目標 了解模塊化概念和好處,以及 CommonJS 標準語法導(dǎo)出和導(dǎo)入 講解 在 Node.js 中每個文件都被當做是一個獨立的模塊,模塊內(nèi)定義的變量和函數(shù)都是獨立作用域的,因為 Node.js 在執(zhí)行模塊代碼時,將使用如下所示的函數(shù)封裝器對其進行封裝 ? 而且項目是由多個模塊組成的,

    2024年02月07日
    瀏覽(21)
  • 【node.js】04-模塊化

    【node.js】04-模塊化

    目錄 一、什么是模塊化 二、node.js中的模塊化 1. node.js中模塊的分類 2. 加載模塊 3.?node.js 中的模塊作用域 4.?向外共享模塊作用域中的成員 4.1 module對象? 4.2?module.exports 對象 4.3 exports對象 5.?node.js 中的模塊化規(guī)范? ????????模塊化是指解決一個復(fù)雜問題時,自頂向下逐層

    2024年02月15日
    瀏覽(24)
  • 【Node.js】module 模塊化

    Node.js 是一個獨立的 JavaScript 運行環(huán)境,能獨立執(zhí)行 JS 代碼,可以用來編寫服務(wù)器后端的應(yīng)用程序?;贑hrome V8 引擎封裝,但是沒有 DOM 和 BOM。Node.js 沒有圖形化界面。 node -v 檢查是否安裝成功。 node index.js 執(zhí)行該文件夾下的 index.js 文件。 commonJS 寫法 ES 寫法 需要先 npm ins

    2024年02月07日
    瀏覽(27)
  • Node.js-模塊化理解及基本使用

    講一個復(fù)雜的程序文件按照一定的規(guī)則拆分成多個獨立的小文件,這些小文件就是小模塊,這就是模塊化。 每個小模塊內(nèi)部的數(shù)據(jù)是私有的,可以暴露內(nèi)部數(shù)據(jù)給外部其他模塊使用。 減少命名的沖突 提高復(fù)用性 提高可維護性 按需加載 1.單個模塊暴露 2.多個模塊暴露 暴露數(shù)

    2024年02月14日
    瀏覽(30)
  • 第四章認識Node.js模塊化開發(fā)

    Node.js系統(tǒng)模塊 續(xù)上一篇文章第三章認識Node.js模塊化開發(fā)-CSDN博客,這次繼續(xù)來認識和總結(jié)以下node的常用模塊開發(fā) Node.js系統(tǒng)模塊是指Node.js自帶的一些模塊,這些模塊可以直接在Node.js中使用,無需安裝其他包。以下是常用的Node.js系統(tǒng)模塊: fs模塊:用于處理文件系統(tǒng)。 htt

    2024年02月08日
    瀏覽(24)
  • 【Node.js學(xué)習 day4——模塊化】

    【Node.js學(xué)習 day4——模塊化】

    什么是模塊化與模塊? 將一個復(fù)雜的程序文件依據(jù)一定規(guī)則(規(guī)范)拆分成多個文件的過程稱之為 模塊化 其中拆分的 每個文件就是一個模塊 ,模塊的內(nèi)部數(shù)據(jù)是私有的,不過模塊可以暴露內(nèi)部數(shù)據(jù)以便其他模塊使用。 什么是模塊化項目? 編碼時是按照模塊一個一個編碼的

    2024年01月16日
    瀏覽(50)
  • 探究 Node.js 中的模塊化實現(xiàn)方式

    簡介 : 在現(xiàn)代的軟件開發(fā)中,模塊化是一種重要的編程范式。Node.js作為一種基于 JavaScript 運行時的環(huán)境,也支持模塊化開發(fā)。本文將深入探討 Node.js 中的模塊化實現(xiàn)方式,包括 CommonJS 規(guī)范和 ES 模塊規(guī)范,并介紹它們的特點、使用方法以及在實際開發(fā)中的應(yīng)用。 正文: Co

    2024年02月08日
    瀏覽(94)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包