nodejs中使用require导入模块,
可以是核心模块
第三方模块,
手写js文件(服务端)
引入js文件时,如果是当前路径要加 ./
引入手写的模块时:
1.会执行被调用者
2.会得到它对外开放的module.exports
优先从缓存加载
但是nodejs优先从缓存加载,如果当前引入的已经加载过了就不会在加载,而是只得到他对外开放的module.exports对象
核心模块实际上也是js文件
第三方包在安装时
npm install/i art-template(例如) --save
此时引入了node_modules文件夹(安装在项目根目录下)
如果此时根目录中有package.json文件会把直接引入的包记录下来
{
"dependencies": {
"art-template": "^4.13.2"
}
}
而此时删除node_module文件,也可通过
npm install命令重新安装(要存在package.json文件)
每当require第三方模块时
例如:
var template=require('art-template');
就会先找到
如果没找到main就会默认去找index.js这一文件
可以看到第三方模块的引入的实质还是通过module.exports,来对外提供当前模块的变量,方法