NodeJs整理(三)

举报
rockyyee 发表于 2020/07/05 21:32:04 2020/07/05
【摘要】 本篇整理了 NodeJs commonJs模块化概念。

NodeJs整理(三)

模块化


一、为什么会有模块化


    在JavaScript发展初期就是为了实现简单的页面交互逻辑,寥寥数语即,如今随着前端代码日益膨胀


    这时候JavaScript作为嵌入式的脚本语言的定位动摇了,JavaScript却没有为组织代码提供任何明显帮助,JavaScript极其简单的代码组织规范不足以驾驭如此庞大规模的代码;


二、Node.js中的模块化  commonjs规范

    CommonJS就是为JS的表现来制定规范,因为js没有模块的功能所以CommonJS应运而生,它希望js可以在任何地方运行,不只是浏览器中。


NodeJs模块三大类

  • 内置模块

  • 第三方模块(需通过npm下载)

  • 自定义模块


详解 NodeJs 自定义模块

引入一个文件 形式模块

创建 a_module.js 文件

console.log("我是a_module模块!!!");


主入口 index.js 文件

//通过require来引入
require("./aModule"); //注意一定要有"./",文件后缀".js"可加可不加。



引入文件夹形式模块

在 aModuledir  下创建 index.js

console.log("我是aModule模块文件夹");



主入口 index.js 文件:

    • aModuleDir里的index.js文件,会自动查找文件夹下的index.js文件执行

require("./aModuledir"); //必须加"./"




另外, 当然也可以配置默认启动文件,在文件夹内新建 package.json 来指定执行文件

{
  "name":"aModule",
  "version":"1.0.0",
  "main":"test.js"    // 指定主入口文件
}



自定义模块的按需导出

创建 bModule.js

module.exports = {
    a:"我是a的值",
    b(){
        console.log("我是导出的b函数");
    }
}


主入口 index.js

// 引入变量
let mymodule = require("bModule");
console.log(mymodule.a);
mymodule.b();



或者 通过  exports来导出

exports.fn = function(){
    console.log("我是fn函数");  
}

导入方式有所改变

let myfn = require("bModule").fn;
myfn();


// 或者 通过解构赋值 
let { fn } = require("bModule");
fn();


Note: 模块加载的优先级 ,先文件再目录;


END

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。