深入理解Node内建模块和对象


Posted in Javascript onMarch 12, 2019

node 核心中有些内建模块,使用这些模块可以操作系统,文件和网络。打开 nodejs.org 官网可以看到文档中对应版本的 API ,推荐使用稳定版。

深入理解Node内建模块和对象

当然也不全是模块,比如 consolebuffer 是对象,这里简单的讲下一些常用的内建模块。

比如有操作文件系统的 filename 、可以创建监听 HTTP 请求的网络服务的 HTTP 、还有操作系统的 OS 模块、还有 path ,操作路径、 process 可以返回我们现在正在处理的信息、 QueryString 用来创建 http 服务的时候非常有用。 stream 可以用来操作数据流,后面需要的时候也可以学到其它的一些模块。

首先我们先来看看 path 模块,在文档中可以看到这个模块所有的函数。

深入理解Node内建模块和对象

往下拉也可以看到针对模块的使用作出的说明。

深入理解Node内建模块和对象

回到编辑器,引入 path 模块

深入理解Node内建模块和对象

这就是 path 对象,有很多有用的属性,比如 root 根目录路径, dir 应用的文件夹路径, base 应用的名称, ext 文件的后缀名, name 除去后缀名的应用名。可以很容易的得到相关的字符串。

关于如何使用 OS 模块获取当前操作系统的信息。在文档中可以看到这个模块所有的函数。

深入理解Node内建模块和对象

比如 freemem ,会返回当前可用的内存有多少。 totalmem 返回总内存的大小。 uptime 获取开机时间等等。

深入理解Node内建模块和对象

node 之前,用 JavaScript 是得不到这些信息的, JavaScript 被设计为只能操作 window 或者 document 对象,而不能获取操作系统的信息。

fs 模块是我们之后用到的非常多的一个,官方的文档中列出了很多的操作文件和路径的方法。

深入理解Node内建模块和对象

这里列举一个例子看看如何在 node 中操作,其余的按照文章的方法一一尝试学习就好。这里需要注意的是在实际编程环境里, fs 对象里有很多的同步或者阻塞的方式,和异步或者非阻塞的方法。尽量避免使用同步方法,使用异步方法。因为 node 是单线程的,同步的方法过多,会造成阻塞,从而无法服务众多客户端。

深入理解Node内建模块和对象

这里以同步方法是为了方便理解。

深入理解Node内建模块和对象

我们得到了一个字符串数组,是这个文件夹中的文件。 好了,我们尝试再使用异步的方法看看,第一个参数是路径,第二个参数是回调函数, node 会在异步操作完成后自动执行函数。

深入理解Node内建模块和对象

得到的结果和同步是一样的,那如果我更改下路径会发生什么的?

深入理解Node内建模块和对象

提示没有这样的文件或是目录。

所以在 node 中,能不用同步方法就不用,而是用异步。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
js中获取事件对象的方法小结
Mar 13 Javascript
dtree 网页树状菜单及传递对象集合到js内,动态生成节点
Apr 14 Javascript
仿谷歌主页js动画效果实现代码
Jul 14 Javascript
JS点击链接后慢慢展开隐藏着图片的方法
Feb 17 Javascript
jQuery根据用户电脑是mac还是pc加载对应样式的方法
Jun 26 Javascript
JavaScript使用正则表达式获取全部分组内容的方法示例
Jan 17 Javascript
Vue实现内部组件轮播切换效果的示例代码
Apr 07 Javascript
前端防止用户重复提交js实现代码示例
Sep 07 Javascript
Vue extend的基本用法(实例详解)
Dec 09 Javascript
vue 中url 链接左边的小图标更改问题
Dec 30 Javascript
javascript History对象原理解析
Feb 17 Javascript
Vant 中的Toast设置全局的延迟时间操作
Nov 04 Javascript
vue基础之模板和过滤器用法实例分析
Mar 12 #Javascript
mpvue开发音频类小程序踩坑和建议详解
Mar 12 #Javascript
React中this丢失的四种解决方法
Mar 12 #Javascript
使用koa2创建web项目的方法步骤
Mar 12 #Javascript
如何为你的JS项目添加智能提示与类型检查详解
Mar 12 #Javascript
Vue项目引发的「过滤器」使用教程
Mar 12 #Javascript
通过JS运行机制的角度说说作用域
Mar 12 #Javascript
You might like
php url地址栏传中文乱码解决方法集合
2010/06/25 PHP
PHP计划任务之关闭浏览器后仍然继续执行的函数
2010/07/22 PHP
基于php常用函数总结(数组,字符串,时间,文件操作)
2013/06/27 PHP
PHP提交表单失败后如何保留已经填写的信息
2014/06/20 PHP
Win7下手动安装apache2.2、php5.4笔记
2015/04/03 PHP
PHP中addslashes()和stripslashes()实现字符串转义和还原用法实例
2016/01/07 PHP
PHP弱类型语言中类型判断操作实例详解
2017/08/10 PHP
[原创]PHP实现字节数Byte转换为KB、MB、GB、TB的方法
2017/08/31 PHP
php函数式编程简单示例
2019/08/08 PHP
alert中断settimeout计时功能
2013/07/26 Javascript
js实现文章文字大小字号功能完整实例
2014/11/01 Javascript
详解jQuery Mobile自定义标签
2016/01/06 Javascript
Webwork 实现文件上传下载代码详解
2016/02/02 Javascript
详解XMLHttpRequest(二)响应属性、二进制数据、监测上传下载进度
2016/09/14 Javascript
Easyui的组合框的取值与赋值
2016/10/28 Javascript
jquery代码规范让代码越来越好看
2017/02/03 Javascript
angularJs中datatable实现代码
2017/06/03 Javascript
jQuery Ajax向服务端传递数组参数值的实例代码
2017/09/03 jQuery
一步步教你利用Canvas对图片进行处理
2017/09/19 Javascript
浅谈Javascript常用正则表达式应用
2019/03/08 Javascript
24个解决实际问题的ES6代码片段(小结)
2020/02/02 Javascript
原生JavaScript之es6中Class的用法分析
2020/02/23 Javascript
[51:17]Mineski vs Secret 2019国际邀请赛淘汰赛 败者组 BO3 第一场 8.22
2019/09/05 DOTA
matplotlib绘制动画代码示例
2018/01/02 Python
python使用Pycharm创建一个Django项目
2018/03/05 Python
python 批量修改/替换数据的实例
2018/07/25 Python
用python实现k近邻算法的示例代码
2018/09/06 Python
python django框架中使用FastDFS分布式文件系统的安装方法
2019/06/10 Python
Python 获取命令行参数内容及参数个数的实例
2019/12/20 Python
ubuntu 安装pyqt5和卸载pyQt5的方法
2020/03/24 Python
Python 实现PS滤镜中的径向模糊特效
2020/12/03 Python
CSS3 transforms应用于背景图像的解决方法
2019/04/16 HTML / CSS
英国曼彻斯特宠物用品品牌:Bunty Pet Products
2019/07/27 全球购物
在C#中如何实现多态
2014/07/02 面试题
事业单位鉴定材料
2014/05/25 职场文书
体育教育毕业生自荐信
2014/06/29 职场文书