模块化开发

为什么要使用模块化的标准进行开发呢

如果我们写一个大型点的案例,这大型的案例代码肯定是比较多的,如果我们臃肿的写在一个js文件里面,那会使得我们我们文件体积非常大,代码量非常的多,结构显得很混乱(详情看第一天的作业)。

那么我们可以使用模块化,还给我们的项目进行模块化的区分(把不同的功能写在不同的文件夹当中),这样写的好处我们可以让模块复用性,减少代码的臃肿,为了我们在一次写项目的时候可以减少开发时间和提高效率。

每一个js文件都是一个模块

在node.js 当中每一个js文件就是一个模块,其中每个模块他都被一个匿名的函数包裹住(每个js文件里面的所有代码都是被一个立即执行函数包裹住)

即node.js代码环境都是在函数作用域当中,而不是全局作用域当中。

模块当中,立即执行函数里面的五个参数

立即执行函数的五个形参(都是立即执行函数传递的形参,而不是全局的方法)

  1. exports:是一个对象 专门用来暴露模块的数据 (本质上是通过module.exports这个对象暴露数据的)
  2. require:require他是函数类型 专门用来引入模块的
  3. module:module他是模块的意思,说白了就是你当前模块(js文件)里面的内容 给你返回出来,他是一个模块对象
  4. filename:filename他是你当前文件的名字,可以以理解为他是文件的绝对路径(文件)
  5. dirname:dirname他是当前文件夹的绝对路径(文件夹)
    自定义模块
    1. 我们可以把公共的功能 抽离成为一个单独的 js 文件 作为一个模块,默认情况下面这个模块里面的方法或者属性,外面是没法访问的。如果要让外部可以访问模块里面的方法者属性,就必须在模块里面通过 exports 或者 module.exports 暴露属性或者方法。
    2. 在需要使用这些模块的文件中,通过 require 的方式引入这个模块。这个时候就可以使用模块里面暴露的属性和方法。

1、node_modules——放模块

自定义模块可以放在node_modules里

2、require——引入其他模块

var mod1 = require(’./mod.js’);-------.js可省略不写

var mod1 = require(’./mod’);

var mod2 = require('mod');

如果有"./",从当前目录找。如果没有"./"先从系统模块,再从node_modules找。

3、exports——单个输出

  对外输出东西——必须加给exports

 exports.a = 12;

 exports.b = 5;

4、module——批量输出

module.exports = { a: 12, b: 15, c: 33 };

5、自定义模块mod.js

//exports----单个输出
//exports.a=12;
//exports.b=5;


//module---批量输出
module.exports={a:12,b:5,c:33};

6、引入mod.js模块使用

//require--请求
var mod1=require('./mod');
console.log(mod1.a,mod1.b,mod1.c)

总结点:

1、引入的自己的模块时,必须加./。
如果不想加./。可以把自定义模块写在node_modules文件夹下。
当有./时,从当前目录中找。
当无./时,先从系统模块中找,再到node_modules中找。
2、对外输出东西,必须加exports。这最大的优点是可以控制谁出去,谁不出去,让自由度更大了。
module也是对外输出东西,他是批量输出。
module.exports==exports(true)
3、nodejs无全局变量,只能在模块中用。

展开阅读全文
©️2020 CSDN 皮肤主题: 大白 设计师: CSDN官方博客 返回首页
实付0元
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值