Nodejs

Node

模块化管理

  • node应用程序由模块组成,遵循CommonJS模块规范,使用模块管理的好处是隔离模块得物作用域,避免出现命名冲突

  • 什么是CommonJS:是一套代码的规范,构建一个在浏览器之外的javascript语言的生态系统

  • CommonJS规范的主要内容:

  • 通过模块的导出:module.exports导出对外的变量或接口

  • 通过require将其他模块导入到当前模块的作用域中。

  • CommonJS特点:

  • 所有模块都运行在当前模块的作用域中,不会污染全局作用域

  • 模块是同步加载的是根据模块出现的顺序依次加载

  • 模块可以多次加载但只有在第一次加载时运行。其他的加载会放入缓存中,后面使用时直接从缓存中读取

Node的module对象

  • 在node内部定义了一个module构造函数,构造函数的属性有:

  • id:表示模块的标识符

  • parent:调用模块的模块

  • exports:表示要导出的值

  • paths:表示该模块的查找路径,当前目录的ndoe_moudules -->父目录的Node_modules---> ....-->跟目录下的node_modules

  • path:当前模块所在的路径

  • filename:当前模块所在的文件名称

强调:在CommonJS规范中所有与的模块都是Module的实例(对象)

exports变量

  • 该变量指向的module.exports,作用是方便我们用户的操作

module.exports.area=function(r) {

returnMath.PI*r**2

}

不能直接给exports直接复制,这样就切断了exports与module.exports之间的连续

require命令

是node的内置命令主要用于加载模块文件

作用:
  • 导入并运行javaScript文件,他返回的是exports对象

  • 加载规则:

  • 加载文件的默认后缀名是 . j

  • 如果参数字符串以'/'开头,表示加载的文件是位于绝对路径下的文件

  • 如果参数字符以'./'开头,表示加载的文件是位于相对路径下的文件。

  • 如果参数字符串不以'./'或者'/'开头的则表示,加载的是一个默认提供的核心模块(位于Node的系统安装目录中),或者一个位于各级node_modules目录的已安装模块(全局安装或局部安装)

Node里的Buffer对象

作用:

  • 是Node提供的处理二进制数据的对象、是node的内置对象、在使用时不需要安装、可以直接使用,不需要requlre('buffer')

  • 使用的原因:JavaScript处理字符串的功能非常强大,但在二进制数据处理方面能力很弱

  • 因此node就内置了buffer对象专门处理二进制的数据,buffer是构造函数,

  • 可以使用new去创建buffer的对象,浏览器的v8引擎会为Buffer的对象分配内存空间,类似于数组

letbuf=newBuffer(259) //256表示buf有259个单元,类似于数组.下标的范围在0~258之间

console.log(buf)

//强调:buf的每个单元存放的数据必须是0~255之间的整数值。即Buffer的每个单元的就是一个字节

强调:buf的每个单元存放的数据必须是0~255之间的整数值。即Buffer的每个单元的就是一个字节。

Byte:字节

1024Byte ==> 1kB

1024KB==>1MB

1024MB==>1GB

1024GB==>1TB

1024TB ==> 1PB

Buffer对象可以和字符串进行互换

Buffer构造函数

  • 新方法Buffer.alloc(number):创建给定单元个数的缓冲区,返回的是Buffer对象

  • Buffer.from(string/[],):创建一个缓冲区,缓冲区的数据由参数给定

  • 给构造函数传递整数:表示分配多少个自己的存储空间

letbytes=newBuffer(5) //表示给bytes分配5个字节的存储空间

  • 给构造函数传递数组:数组的成员必须是整数值、

  • letbytes=newBuffer([0x10,0x48])//将数组传递给Buffer构造函数

构造函数传递字符串:默认的编码格式是utf8

letb1=newBuffer('蜗牛学院','utf8')

console.log(b1.toString())

注意:在JavaScript中一个汉字占3个字节

fs模块中读取文件的函数
  • readFile(filename,callback):异步的读

  • readFileSync(filenam,callback)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值