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

通過實例了解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)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

相關文章

  • ajax+node+request爬取網(wǎng)絡圖片的實例(宅男福利)

    ajax+node+request爬取網(wǎng)絡圖片的實例(宅男福利)

    下面小編就為大家?guī)硪黄猘jax+node+request爬取網(wǎng)絡圖片的實例(宅男福利)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-08-08
  • node省市區(qū)三級數(shù)據(jù)性能測評實例分析

    node省市區(qū)三級數(shù)據(jù)性能測評實例分析

    這篇文章主要介紹了node省市區(qū)三級數(shù)據(jù)性能,結合具體實例形式評測分析了node省市區(qū)三級數(shù)據(jù)的實現(xiàn)、改進方法與運行效率,需要的朋友可以參考下
    2019-11-11
  • node.js報錯:npm?ERR?code?EPERM的解決過程

    node.js報錯:npm?ERR?code?EPERM的解決過程

    在學習vue+typescript的時候突然發(fā)現(xiàn)了個錯誤,所以下面這篇文章主要給大家介紹了關于node.js報錯:npm?ERR?code?EPERM的詳細解決過程,文中通過實例代碼介紹的非常詳細,需要的朋友可以參考下
    2022-08-08
  • node.js中的fs.linkSync方法使用說明

    node.js中的fs.linkSync方法使用說明

    這篇文章主要介紹了node.js中的fs.linkSync方法使用說明,本文介紹了fs.linkSync的方法說明、語法、接收參數(shù)、使用實例和實現(xiàn)源碼,需要的朋友可以參考下
    2014-12-12
  • 命令行批量截圖Node腳本示例代碼

    命令行批量截圖Node腳本示例代碼

    這篇文章主要給大家介紹了關于命令行批量截圖Node腳本的相關資料,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面來一起學習學習吧
    2019-01-01
  • Node.js事件的正確使用方法

    Node.js事件的正確使用方法

    這篇文章主要給大家介紹了關于Node.js事件的正確使用方法,文中通過示例代碼介紹的非常詳細,對大家學習或者使用Node.js具有一定的參考學習價值,需要的朋友們下面來一起學習學習吧
    2019-04-04
  • 詳解用node編寫自己的cli工具

    詳解用node編寫自己的cli工具

    這篇文章主要介紹了詳解用node編寫自己的cli工具,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-05-05
  • Node.js 中 morgan 依賴及基本使用詳解

    Node.js 中 morgan 依賴及基本使用詳解

    文章介紹了Node.js中`morgan`依賴的安裝、基本使用、日志格式(如`dev`、`combined`、`common`等),以及如何自定義日志格式和將日志寫入文件,感興趣的朋友一起看看吧
    2025-02-02
  • Node.js編寫爬蟲的基本思路及抓取百度圖片的實例分享

    Node.js編寫爬蟲的基本思路及抓取百度圖片的實例分享

    這篇文章主要介紹了Node.js編寫爬蟲的基本思路及抓取百度圖片的實例分享,其中作者提到了需要特別注意GBK轉碼的轉碼問題,需要的朋友可以參考下
    2016-03-03
  • node Buffer緩存區(qū)常見操作示例

    node Buffer緩存區(qū)常見操作示例

    這篇文章主要介紹了node Buffer緩存區(qū)常見操作,涉及node.js操作Buffer緩存的創(chuàng)建、寫入、讀取、轉換等相關實現(xiàn)技巧,需要的朋友可以參考下
    2019-05-05

最新評論

和田县| 宝山区| 富蕴县| 理塘县| 左贡县| 兴隆县| 康保县| 搜索| 镇宁| 孟津县| 嘉祥县| 阳东县| 辉南县| 志丹县| 高青县| 铁岭市| 思南县| 高州市| 南陵县| 麦盖提县| 秀山| 太康县| 砀山县| 芒康县| 闽侯县| 若羌县| 涪陵区| 乌兰浩特市| 庆元县| 中阳县| 惠安县| 卢氏县| 图木舒克市| 玉田县| 莲花县| 噶尔县| 本溪市| 吉首市| 专栏| 临邑县| 类乌齐县|