美文网首页
node模块化(Common-js)

node模块化(Common-js)

作者: 我家有个王胖胖 | 来源:发表于2022-05-16 10:14 被阅读0次

模块化

介绍

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

  • 在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');

相关文章

  • node模块化(Common-js)

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

  • module.exports与exports,export与ex

    简而言之:node模块化遵循的是requirejs的模块化规范,node中当require引入文件的时候,引入的其...

  • 01-Node 基础使用

    Node 基础使用Node 介绍Node 模块化开发模块成员的导出模块成员的导入Node 系统模块 path 和 ...

  • GraphQL 渐进学习 07-graphql-node-ser

    GraphQL 渐进学习 07-graphql-node-server-模块化 目标 为了便于维护,模块化 nod...

  • nodejs03-commonjs

    CommonJs CommonJs是模块化的标准,nodejs是模块化的实现 nodejs模块 核心模块(node...

  • ES Modules 中的 __dirname 和 __file

    模块化发展 早期,前端这块没有模块化系统,而 Node.js 需要模块化所以只能一直使用 CommonJS 标准凑...

  • Node.js模块化学习

    模块化的基本概念Node.js 中模块化npm与包模块的加载机制 模块化的基本概念 什么是模块化 模块化是指解决一...

  • module模块化

    模块化规范 CommonJS : node.js require('')... AMD : require.j...

  • import和require的区别

    node编程中最重要的思想就是模块化,import和require都是被模块化所使用。 遵循规范 require ...

  • require和import区别

    node编程中最重要的思想就是模块化,import和require都是被模块化所使用。 遵循规范–require ...

网友评论

      本文标题:node模块化(Common-js)

      本文链接:https://www.haomeiwen.com/subject/jfwiurtx.html