在Node.js
中,以模块为单位划分所有功能,并且提供了一个完整的模块加载机制。
- 狭义的说,每一个JavaScript文件都是一个模块;而多个JavaScript文件之间可以相互require,他们共同实现了一个功能,他们整体对外,又称为一个广义上的模块。
-
Node.js
中,一个JavaScript文件中定义的变量、函数,都只在这个文件内部有效。当需要从此JS文件外部引用这些变量、函数时,必须使用exports
对象进行暴露。使用者要用require()命令引用这个JS文件。
hello.js文件
const message = "hello world";
exports.message = message;
message这个变量,是一个js文件内部才有作用域的变量。
如果别人想用这个变量,那么就要用exports进行暴露。
const message = require(./hello);
console.log(hello.message);
一个JavaScript文件,可以向外exports无数个变量、函数。但是require
的时候,仅仅需要require
这个JS文件一次。使用的它的变量、函数的时候,用点语法即可。
const message = "hello world";
const index = 5;
const detail = "hi";
exports.message = message;
exports.index = index;
exports.detail = detail;
在使用者中,只需要require
一次。
如果在require
命令中,这么写:
const foo = require("foo.js");//没有写./ 所以不是相对路径 是一个特殊路径
nodejs
会将该文件视为node_modules
目录下的一个文件
那么Node.js
将该文件视为node_modules
目录下的一个文件
我们可以使用文件夹来管理模块,比如
const bar = require("bar")
那么Node.js
将会去寻找node_modules
目录下的bar文件夹中的index.js去执行。
每一个模块文件夹中,推荐都写一个package.json
文件,这个文件的名字不能改。node将自动读取里面的配置。有一个main项,就是入口文件.
通过npm install
来安装模块 然后使用package.json
来管理依赖。
网友评论