后端技术分享 | Node.js的模块介绍

Posted Quanta

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了后端技术分享 | Node.js的模块介绍相关的知识,希望对你有一定的参考价值。

今天的后端技术分享给大家带来的是Node.Js的模块介绍。使用模块是Node.Js十分重要也是十分基础的一部分。事不宜迟,我们一起来看看Node.js的模块啦。



后端技术分享 | Node.js的模块介绍

什么是Node.js的模块


编程过程中,随着程序代码越写越长,一个文件中的代码量也会随之增加使得代码难以维护。为了解决这一问题,我们将很多函数分组放在不同的文件里,这样每个文件的代码就会相对较少。在Node环境中,一个.js文件就是一个模块。



后端技术分享 | Node.js的模块介绍

为什么要使用模块


除了提高代码可维护性外,你的编程不必从零开始。当一个模块完成后,就可被其他地方引用。使用模块还可避免函数名跟变量名的冲突,在不同的模块中,即使变量名相同,只要引用得当,就不会担心变量冲突问题(变量冲突的解决涉及到CommonJs规范,感兴趣的同学可查阅相关资料)。



后端技术分享 | Node.js的模块介绍

如何调用Nodejs的模块


1

编写模块

编写一个js文件作为模块(以下面的hello.js为例)


后端技术分享 | Node.js的模块介绍

(hello.js)


这个.js文件就可以看作是一个模块(我们暂称为hello模块),我们在其中定义了一个函数greet(),最后的赋值语句,我们将greet作为hello模块的输出暴露出去,让其他的模块使用。


2

在main.js中引用这个hello模块

后端技术分享 | Node.js的模块介绍

(main.js)


注意这里非常重要的一个函数:require(),它的作用就是引入hello模块,使得我们可以在main.js中使用hello模块中的greet()函数。在使用require()函数时要注意模块的相对路径,这里由于笔者将hello.js跟main.js放在了同一目录下,所以我们使用当前目录:(‘./hello’),文件的.js后缀可以省略但路径一定要写全,若只写模块名,Node查找不到对应的模块会报错,像下面这样:


后端技术分享 | Node.js的模块介绍


遇到这种问题时分三步检查:

1.模块名是否正确。

2.模块文件是否存在。

3.相对路径是否正确。



后端技术分享 | Node.js的模块介绍

Node.js中的对象


1

global

我们知道,JS中有且只有一个全局对象,在浏览器中称为window对象,而在Node.JS中,唯一的全局对象被称为global,如果你想了解有关参数,可以进入Node环境,输入global.console查看有关参数。

后端技术分享 | Node.js的模块介绍


2

process

process是Node.Js提供的另一个对象,表示当前Node.Js的进程。通过它可以查到许多有用的信息。(有兴趣的小伙伴可以去详细了解)

后端技术分享 | Node.js的模块介绍



后端技术分享 | Node.js的模块介绍

Node.js的内置模块——fs模块


fs(filesystem)模块,即文件系统模块,负责读写文件。

后端技术分享 | Node.js的模块介绍


异步读取文件:

后端技术分享 | Node.js的模块介绍

(注:sample.txt文件必须放在readfile.js文件当前目录下且字符编码为utf-8)


利用require()引入fs模块后,执行异步读取函数readFile(),前两个参数表明文件名及字符编码,第三个回掉函数传入两个参数err,data。正常读取时,err参数为null,data为读取到的string,读取异常时,err表示一个错误对象,data为undefined。


异步读取非文本文件:

当读取二进制文件时,不传入字符编码,data参数会返回一个Buffer对象(一个包含零个或多个字节的数组与Array不同)。

后端技术分享 | Node.js的模块介绍


 异步写文件:

后端技术分享 | Node.js的模块介绍

与读取文件不同,writeFile()函数的第一个参数为所写文件的文件名,第二个参数为写入的文件数据data,回掉函数只需要一个err参数用于写文件出现异常时显示相关错误信息。



后端技术分享 | Node.js的模块介绍

下期预告


fs模块的基本介绍就是这些,下期会带来与之密切相关的另一个模块Stream。



后端技术分享 | Node.js的模块介绍

本期作者

后端技术分享 | Node.js的模块介绍

编辑/OldFe

美工/Sc3o





附录

Quanta(量子)信息技术服务中心是以半企业化模式运营的一个专业的IT技术组织,致力于大型的商业或非商业项目开发、技术攻关与自主产品研发工作。以育人文化为宗旨,Quanta秉持着“Nothing but professional.”的原则,培育出一届又一届优秀的IT人才。

在Quanta,我们推崇简单、务实的工作方式,在轻松、快乐的工作环境中积累和分享。你不只是在Quanta工作,是和一群志趣相投的人一起生活!






Quanta|互联网+广外人

广外最大的IT技术团体
长按二维码关注 Quan ta




以上是关于后端技术分享 | Node.js的模块介绍的主要内容,如果未能解决你的问题,请参考以下文章

node.js 基础操作

node.js版本管理工具n无效的原理和解决方法介绍

nodejs可以做后端吗?

Node JS后端项目开发与生产环境总结

Request —— 让 Node.js http请求变得超简单

node.js是开源的吗