me.js
// 声明函数
function demo(){
console.log('测试1')
}
// 暴露数据
module.exports = demo
index.js
// 导入模块
const demo = require('./me')
// 使用函数
demo()
模块暴露数据的方式有两种:
module.exports = value
exports.name = value
使用时有几点注意:
module.exports
可以暴露 任意 数据
不能使用exports = value
的形式暴露数据,模块内部module
与exports
的隐式关系
exports = module.exports = {}
,require
返回的是目标模块中module.exports
的值
在模块中使用 require 传入文件路径即可引入文件
const test = require('./me.js');
require 使用的一些注意事项:
./
和 ../
js
和 json
文件导入时可以不用写后缀,c/c++
编写的 node
扩展文件也可以不写后缀,但是一般用不到js
文件进行处理package.json
文件中 main
属性对应的文件,如果存在则导入,反之如果文件不存在会报错。main
属性不存在,或者 package.json
不存在,则会尝试导入文件夹下的 index.js
和 index.json
,如果还是没找到,就会报错node.js
内置模块时,直接 require
模块的名字即可,无需加 ./
和 ../
这里我们介绍一下 require 导入 自定义模块 的基本流程
arguments.callee.toString()
查看自执行函数module.exports
的值