亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

通過實例了解Nodejs模塊系統(tǒng)及require機制

 更新時間:2020年07月16日 11:05:53   作者:網(wǎng)絡蟲  
這篇文章主要介紹了通過實例了解Nodejs模塊系統(tǒng)及require機制,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下

一、簡介

  Nodejs 有一個簡單的模塊加載系統(tǒng)。在 Nodejs 中,文件和模塊是一一對應的(每個文件被視為一個獨立的模塊),這個文件可能是 JavaScript 代碼,JSON 或編譯過的C/C++ 擴展,例如:

/**
 *foo.js
 *將這個js文件導出為模塊
 */
exports.hello = function() {
  console.log("hello Nodejs!");
}
/**
 *main.js
 *main.js和foo.js在同一目錄下
 *在控制臺中將會輸出:hello Nodejs!
 */
var foo = require("./foo.js");

foo.hello();

二、如何將模塊導出—— module.exports 與 exports 的區(qū)別

  Nodejs 中的每一個模塊都會自動創(chuàng)建一個 module 對象,同時 module 對象下有一個叫 exports 的屬性,可以將某個類的實例賦值給 module.exports,從而導出這個類的實例。在模塊被執(zhí)行前,Nodejs 會將 module.exports 的值賦于全局變量 exports ,以便 module.exports.f = ... 可以更簡潔的寫成 exports.f = ... 。注意:就像所有變量一樣,如果重新給 exports 賦值,它就不再綁定到 module.exports 了,也不會導出指定模塊

例如:

/**
 *foo.js
 *導入方式:var foo = require("./foo.js");
 */
function Foo() {}
Foo.prototype.hello = function() {
  console.log("hello Nodejs!");
}

module.exports = new Foo();
/**
 *foo.js
 *導入方式:var Foo = require("./foo.js"); var foo = new Foo();
 */
function Foo() {}
Foo.prototype.hello = function() {
  console.log("hello Nodejs!");
}

module.exports = Foo;

/**
 *foo.js
 *導入方式:var foo = require("./foo.js");
 */
exports.hello = function() {
  console.log("hello Nodejs!");
}

三、require的機制

  假設Y是路徑,X是文件名或目錄名,當 Nodejs 遇到 require(Y+X) 時,按照下面的順序處理:

  1、如果 X 是核心模塊(例如:require("http"))

  a.返回該模塊

  b.不再繼續(xù)執(zhí)行

  2、如果Y是以“./”、“/”或“../”開頭

  a.把X當成文件,從指定路徑開始,依次查找下面文件:X、X.js、X.json、X.node,只要其中一個存在,就返回該文件,不再繼續(xù)執(zhí)行

  b.把X當成目錄,從指定路徑開始,依次查找下面文件:X/package.json(main字段)、X/index.js、X/index.json、X/index.node,只要其中一個存在,就返回該文件,不再繼續(xù)執(zhí)行

  3.如果 X 不是核心模塊,也沒有以“./”、“/”或“../”開頭,則Nodejs會從當前模塊的父目錄開始,嘗試從它的 /node_module 目錄里加載模塊,如果還是沒有找到,則移動到再上一層父目錄,直到文件系統(tǒng)的根目錄

  4.拋出“not found”

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

相關文章

  • Node.js制作簡單聊天室

    Node.js制作簡單聊天室

    這篇文章主要為大家詳細介紹了Node.js制作簡單聊天室的相關資料,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-01-01
  • 淺談nodejs中創(chuàng)建cluster

    淺談nodejs中創(chuàng)建cluster

    集群是一組相互獨立的、通過高速網(wǎng)絡互聯(lián)的計算機,它們構成了一個組,并以單一系統(tǒng)的模式加以管理。一個客戶與集群相互作用時,集群像是一個獨立的服務器。集群配置是用于提高可用性和可縮放性。本文將詳細介紹如何在nodejs中創(chuàng)建cluster。
    2021-06-06
  • Node.js中的事件驅(qū)動編程詳解

    Node.js中的事件驅(qū)動編程詳解

    這篇文章主要介紹了Node.js中的事件驅(qū)動編程詳解,本文主要講解理論性知識,如什么是事件驅(qū)動編程、什么是閉包、閉包如何幫助異步編程等知識,需要的朋友可以參考下
    2014-08-08
  • 詳解node服務器中打開html文件的兩種方法

    詳解node服務器中打開html文件的兩種方法

    本篇文章主要介紹了詳解node服務器中打開html文件的兩種方法,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-09-09
  • 詳解在Node.js中發(fā)起HTTP請求的5種方法

    詳解在Node.js中發(fā)起HTTP請求的5種方法

    這篇文章主要介紹了詳解在Node.js中發(fā)起HTTP請求的5種方法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2019-01-01
  • 一文詳解nodejs的path模塊使用

    一文詳解nodejs的path模塊使用

    這篇文章主要為大家介紹了nodejs的path模塊使用詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-11-11
  • Node.js的Mongodb使用實例

    Node.js的Mongodb使用實例

    本篇文章主要介紹了Node.js的Mongodb使用實例,具有一定的參考價值,有興趣的可以了解一下。
    2016-12-12
  • Node.js connect ECONNREFUSED錯誤解決辦法

    Node.js connect ECONNREFUSED錯誤解決辦法

    這篇文章主要介紹了Node.js connect ECONNREFUSED錯誤解決辦法的相關資料,需要的朋友可以參考下
    2016-09-09
  • NodeJS學習筆記之網(wǎng)絡編程

    NodeJS學習筆記之網(wǎng)絡編程

    Node.js采用了Google Chrome瀏覽器的V8引擎,性能很好,同時還提供了很多系統(tǒng)級的API,如文件操作、網(wǎng)絡編程等。Node.js則是一個全面的后臺運行時,為Javascript提供了其他語言能夠?qū)崿F(xiàn)的許多功能。今天我們來看下Nodejs的網(wǎng)絡編程
    2014-08-08
  • Nodejs實現(xiàn)的操作MongoDB數(shù)據(jù)庫功能完整示例

    Nodejs實現(xiàn)的操作MongoDB數(shù)據(jù)庫功能完整示例

    這篇文章主要介紹了Nodejs實現(xiàn)的操作MongoDB數(shù)據(jù)庫功能,結(jié)合完整實例形式分析了nodejs針對MongoDB數(shù)據(jù)庫的連接及增刪改查基本操作技巧,需要的朋友可以參考下
    2019-02-02

最新評論