搜尋

首頁  >  問答  >  主體

node.js中的require引入问题

举个例子:在一个项目的主程序server.js中引入mongoose模块,又在另一个文件use.js中给mongoose定义格式和自定义方法,最后在sever.js引入这个文件,可在use.js为什么又要引入mongoose模块,主程序server.js中不是以及经引入了么?
求大佬告知

伊谢尔伦伊谢尔伦2787 天前436

全部回覆(2)我來回復

  • 迷茫

    迷茫2017-04-17 16:12:51

    NodeJs 中,每個檔案都是一個獨立的模組,裡面定義的變數都是在一個局部作用域中,外面是無法存取的。因此,你在 a.js 中引用了 lib,可能是這樣a.js 中引用了 lib,可能是这样

    const lib = require("lib");

    这里的 lib 是一个局域变量,出了这个文件,其它地方就访问不到了(除非 export)。所以在 b.js 中如果你还需要引用 lib 的话,就得

    const lib = requier("lib");

    这里的 lib 和之前 a.js 中的 lib rrreee

    這裡的 lib 是一個局域變量,出了這個文件,其它地方就訪問不到了(除非 export)。所以在 b.js 中如果你還需要引用 lib 的話,就得

    rrreee

    這裡的lib 和之前a.js 中的lib 其實是指向的同一個物件(都是從lib.js 匯出的),但是它們(指變量)處於不同(獨立)的作用域中。 🎜 🎜如果你以前寫 PHP,你可能對此難以理解。 PHP 的 include 相當於在目前位置插入了包含的腳本,而 node 中的 require 只是引入了對應腳本導出的物件。如果你去看看 requirejs 或 seajs 的程式碼,你就會了解 node 的 require 在幹啥了。 🎜

    回覆
    0
  • PHP中文网

    PHP中文网2017-04-17 16:12:51

    每個模組都是獨立的,use中要改造mongoose,一定需要require得到mongoose對象,不然你怎麼改造

    回覆
    0
  • 取消回覆