Nodejs常见属性

1.特殊的全局对象

  • 这些全局对象可以在模块中任意使用,但是在命令行交互中是不可以使用的;
  • 包括: dirname、filename、exports、module、require();

①__dirname:获取当前文件所在的路径: 注意:不包括后面的文件名;

②__filename:获取当前文件所在的路径和文件名称: 注意:包括后面的文件名称;

2. path常见的API

2.1 从路径中获取信息

  • dirname:获取文件的父文件夹;
  • basename:获取文件名;

  • extname:获取文件扩展名;

2.2 路径的拼接

如果我们希望将多个路径进行拼接,但是不同的操作系统可能使用的是不同的分隔符;

这个时候我们可以使用path.join函数;

2.3 将文件和某个文件夹拼接

如果我们希望将某个文件和文件夹拼接,可以使用 path.resolve;

注意:resolve函数会判断我们拼接的路径前面是否有 /或../或./;

  • 如果有表示是一个绝对路径,会返回对应的拼接路径;
  • 如果没有,那么会和当前执行文件所在的文件夹进行路径的拼接 ;

3. Buffer存储二进制数据

3.1 Buffer作用

计算机中所有的内容:文字、数字、图片、音频、视频最终都会使用二进制来表示。

JavaScript可以直接去处理非常直观的数据:比如字符串,我们通常展示给用户的也是这些内容。

Node为了可以方便开发者完成更多功能,提供给了我们一个类Buffer,并且它是全局的。

3.2 Buffer中存储的是二进制数据

  • 可以将Buffer看成是一个存储二进制的数组;
  • 数组中的每一项,可以保存8位二进制: 00000000 ;

4. 阻塞IO与非阻塞IO

  • 事实上我们任何程序中的文件操作都是需要进行系统调用(操作系统的文件系统);
  • 事实上对文件的操作,是一个操作系统的IO操作(输入、输出);

①阻塞式调用: 调用结果返回之前,当前线程处于阻塞态(阻塞态CPU是不会分配时间片的),调用线程只有 在得到调用结果之后才会继续执行。

②非阻塞式调用: 调用执行之后,当前线程不会停止执行,只需要过一段时间来检查一下有没有结果返回即可。

阻塞和非阻塞,同步和异步有什么区别

  • 阻塞和非阻塞是对于被调用者来说的;
    • 在我们这里就是系统调用,操作系统为我们提供了阻塞调用和非阻塞调用;
  • 同步和异步是对于调用者来说的;
    • 在我们这里就是自己的程序;
    • 如果我们在发起调用之后,不会进行其他任何的操作,只是等待结果,这个过程就称之为同步调用;
    • 如果我们再发起调用之后,并不会等待结果,继续完成其他的工作,等到有回调时再去执行,这个过程就是 异步调用;
  • Libuv采用的就是非阻塞异步IO的调用方式; ​​​​​​​
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值