Node中的模块化(一)

模块化的好处

随着js项目的越来越复杂,就必须考虑模块化。如果没有实现模块化会有很多弊端:

例如全局变量重复、全局污染,js的加载顺序问题,不方便管理。

node的模块方案借鉴了commonjs规范,实现了自己的模块化语法。

主要分为模块的定义、模块导出、模块的引用三个部分。

好处:大大提高了代码的可维护行。其次,编写代码不必从零开始,当一个模块编写完毕,就可以被其它地方引用。我们在编写程序的时候,也经常引用其它模块,包裹Node.js的内置模块和来自第三方的模块。

Node中的自定义模块

在node中,一个.js就是一个模块

1.require谁就运行谁

注意:加载自定义模块,一定要写路径,路径前面一定要加./类型

2.模块天生具有隔离作用域,模块的变量,函数只能在本模块内使用

3.使用exports.xxx=xxx 的语法向外暴露

4.使用module.exports = xxx 的语法向外暴露

   module.exports = {

             a,

             fn

       }

注:module.exports语法也可以单独向外暴露一个

      module.exports单独暴露一个内容内容后,exports语法就失效了

5.两者的区别

  require()加载的实际是module.exports,也就是说当没有使用module.exports时,exports是为module.exports这个空对象添加属性和方法。

6.modlue.exports在向外暴露时class更方便

Node中的内置模块

定义:node官方开发的模块,开发者可以直接调用使用

1.fs模块

上一篇已详细讲解,请跳转   初始Node.js(一)

2.url模块

首先我们需要了解什么是url

下面我们做一个典型的URL的分析

例如:https://www.baidu.com/haha/index.html/?id=12&name=zhangsan&sex=男#page123

https://        协议

www.baidu.com         host服务器地址

/haha          资源路径

/index.html          资源文件

?id=12&name=zhangsan&sex=男                 querystring查询字符串

#page123           hash哈希值

理解以后我们就可以接下来的学习

 

let  url = require('url');

let urlPath = 'https://www.baidu.com/haha/index.html?id=12&name=zhangsan&sex=男#page123';


url.parse(urlPath,true);//url的作用,将一个典型的url解析成一个对象,如果添加了true参数,进一步将查询字符串转为对象

3.path模块

path.join('hello','11','12.txt');//拼接路径,将路径片段拼接成完整的符合操作系统规范的相对路径
path.resolve('./hello','1.txt');//拼接路径,将路径片段拼接成完整的符合操作系统规范的绝对路径
path.extname(urlPath);//从资源文件中提取扩展名
path.dirname(urlPath);//从url中提取资源路径
path.parse(urlPath);//格式化路径,返回一个对象,包含路径中的所有信息

4.queryString模块

作用:将查询字符串转化为对象(一般不使用,因为和url的模块一样的作用,所以一般使用url模块加一个参数true来实现)

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值