NodeJs模块化

一、导入模块

在模块中使用 require 传入文件路径即可引入文件

const test = require('./me.js');

案例:在func.js中定义一个函数,在index.js使用该函数

func.js

function test() {
    console.log("hello 模块化")
}
//暴露数据
module.exports = test;

index.js

//导入模块
const test = require('./func');
//调用函数
test()

二、模块暴露数据

  • 方式一:module.exports
  • 方式二:exports

func.js

function test() {
    console.log("hello 模块化")
}
function demo() {
    console.log("hello demo")
}
//第一种方式:暴露数据 可以暴露 任意 数据
module.exports = {
    test,
    demo
};
//第二种方式:exports 不能使用 exports = value 的形式暴露数据
// exports.test = test;
// exports.demo = demo;

index.js

//导入模块
const func = require('./func');
//调用函数
func.test();
func.demo();

三、注意事项

require 使用的一些注意事项:

  1. 对于自己创建的模块,导入时路径建议写 相对路径 ,且不能省略 ./ 和 …/
  2. js 和 json 文件导入时可以不用写后缀,c/c++编写的 node 扩展文件也可以不写后缀,但是一
    般用不到
  3. 如果导入其他类型的文件,会以 js 文件进行处理
  4. 如果导入的路径是个文件夹,则会 首先 检测该文件夹下 package.json 文件中 main 属性对应
    的文件,
    如果存在则导入,反之如果文件不存在会报错。
    如果 main 属性不存在,或者 package.json 不存在,则会尝试导入文件夹下的 index.js 和
    index.json ,
    如果还是没找到,就会报错
  5. 导入 node.js 内置模块时,直接 require 模块的名字即可,无需加 ./ 和 …/