Node内建模块和对象

1,247 阅读2分钟

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

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

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

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

往下拉也可以看到针对模块的使用作出的说明。
回到编辑器,引入path模块
这就是path对象,有很多有用的属性,比如root根目录路径,dir应用的文件夹路径,base应用的名称,ext文件的后缀名,name除去后缀名的应用名。可以很容易的得到相关的字符串。

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

比如freemem,会返回当前可用的内存有多少。totalmem返回总内存的大小。uptime获取开机时间等等。
node之前,用JavaScript是得不到这些信息的,JavaScript被设计为只能操作window或者document对象,而不能获取操作系统的信息。

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

这里列举一个例子看看如何在node中操作,其余的按照文章的方法一一尝试学习就好。这里需要注意的是在实际编程环境里,fs对象里有很多的同步或者阻塞的方式,和异步或者非阻塞的方法。尽量避免使用同步方法,使用异步方法。因为node是单线程的,同步的方法过多,会造成阻塞,从而无法服务众多客户端。
这里以同步方法是为了方便理解。
我们得到了一个字符串数组,是这个文件夹中的文件。 好了,我们尝试再使用异步的方法看看,第一个参数是路径,第二个参数是回调函数,node会在异步操作完成后自动执行函数。
得到的结果和同步是一样的,那如果我更改下路径会发生什么的?
提示没有这样的文件或是目录。

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