node模块化(Common-js)

模块化

介绍

模块化指的就是将一个大的功能拆分为一个一个小的模块,通过不同的模块的组合来实现一个大功能。

  • 在node中一个 js 文件就是一个模块
  • 模块内部代码对于外部来说都是不可见的,可以通过两种方式向外部暴露

模块创建

一、创建 JS 文件,编写代码(假设当前文件名为 test.js)

function test(){
    console.log('test');
}

二、在文件中对外暴露

module.exports = test;

这里有几点注意:

  • module.exports 可以暴露任意数据
  • 可以使用 module.exports 暴露多个数据
  • exports 也可以暴露数据,不过不能使用 exports = xxx 的形式
exports = module.exports = {},相当于exports持有module.expors的引用,
如果使用exports = xxx这种方式进行导出,则exports不再指向module.exports,而module.exports的默认值为{},导出的仍为module.exports,所有exports = xxx这种导出方式不会生效!

模块引入

使用 require 引入文件即可

var test = require('./test.js');

这里有几点注意:

  • 如果没有加文件后缀,会按照以下后缀加载文件
    • .js fs模块同步读取文件编译执行
    • .json fs模块同步读取文件,用JSON.parse()解析返回结果
    • .node 这是c/c++编写的扩展文件,通过dlopen()方法编译
  • 其他扩展名 会以.js文件载入
  • 如果是文件夹则会默认加载该文件夹下 package.json 文件中 main 属性对应的文件
  • 如果 main 属性对应的文件不存在,则自动找 index.js index.json
  • 如果是内置模块或者是 npm 安装的模块,直接使用包名字即可
  • npm 引入包时,如果当前文件夹下的 node_modules 没有,则会自动向上查找

简化

导出

module.exports       

导入

var res = require('./module.js');
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容