初识NODEJS【module】

module,模块的意思,有点像jar,通过import引入到class文件

1.最常见的模块导入

从 node_modules 目录加载

如果传递给 require() 的模块标识符不是一个核心模块,也没有以 ‘/’ 、 ‘…/’ 或 ‘./’ 开头,则 Node.js 会从当前模块的父目录开始,尝试从它的 /node_modules 目录里加载模块。 Node.js 不会附加 node_modules 到一个已经以 node_modules 结尾的路径上。

如果还是没有找到,则移动到再上一层父目录,直到文件系统的根目录。

例子,如果在 ‘/home/ry/projects/foo.js’ 文件里调用了 require(‘bar.js’),则 Node.js 会按以下顺序查找:

/home/ry/projects/node_modules/bar.js
/home/ry/node_modules/bar.js
/home/node_modules/bar.js
/node_modules/bar.js

这使得程序本地化它们的依赖,避免它们产生冲突。

模块作用域

__dirname
当前模块的目录名。 与 __filename 的 path.dirname() 相同。
示例,从 /Users/mjr 运行 node example.js:
console.log(__dirname);
// 打印: /Users/mjr
console.log(path.dirname(__filename));
// 打印: /Users/mjr

__filename

当前模块的文件名。 这是当前模块文件的已解析的绝对路径。

对于主程序,这不一定与命令行中使用的文件名相同。

有关当前模块的目录名,参见 __dirname。

例子:

从 /Users/mjr 运行 node example.js:

console.log(__filename);
// 打印: /Users/mjr/example.js
console.log(__dirname);
// 打印: /Users/mjr

给定两个模块:a 和 b,其中 b 是 a 的依赖文件,并且目录结构如下:

/Users/mjr/app/a.js
/Users/mjr/app/node_modules/b/b.js

b.js 中的 __filename 的引用将返回 /Users/mjr/app/node_modules/b/b.js,而 a.js 中的 __filename 的引用将返回 /Users/mjr/app/a.js。

猜你喜欢

转载自blog.csdn.net/qq_26239917/article/details/88673509