后端技术分享 | Node.js的模块介绍
Posted Quanta
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了后端技术分享 | Node.js的模块介绍相关的知识,希望对你有一定的参考价值。
今天的后端技术分享给大家带来的是Node.Js的模块介绍。使用模块是Node.Js十分重要也是十分基础的一部分。事不宜迟,我们一起来看看Node.js的模块啦。
什么是Node.js的模块
编程过程中,随着程序代码越写越长,一个文件中的代码量也会随之增加使得代码难以维护。为了解决这一问题,我们将很多函数分组放在不同的文件里,这样每个文件的代码就会相对较少。在Node环境中,一个.js文件就是一个模块。
为什么要使用模块
除了提高代码可维护性外,你的编程不必从零开始。当一个模块完成后,就可被其他地方引用。使用模块还可避免函数名跟变量名的冲突,在不同的模块中,即使变量名相同,只要引用得当,就不会担心变量冲突问题(变量冲突的解决涉及到CommonJs规范,感兴趣的同学可查阅相关资料)。
如何调用Nodejs的模块
编写模块
编写一个js文件作为模块(以下面的hello.js为例)
(hello.js)
这个.js文件就可以看作是一个模块(我们暂称为hello模块),我们在其中定义了一个函数greet(),最后的赋值语句,我们将greet作为hello模块的输出暴露出去,让其他的模块使用。
2
在main.js中引用这个hello模块
(main.js)
注意这里非常重要的一个函数:require(),它的作用就是引入hello模块,使得我们可以在main.js中使用hello模块中的greet()函数。在使用require()函数时要注意模块的相对路径,这里由于笔者将hello.js跟main.js放在了同一目录下,所以我们使用当前目录:(‘./hello’),文件的.js后缀可以省略,但路径一定要写全,若只写模块名,Node查找不到对应的模块会报错,像下面这样:
遇到这种问题时分三步检查:
1.模块名是否正确。
2.模块文件是否存在。
3.相对路径是否正确。
Node.js中的对象
global
我们知道,JS中有且只有一个全局对象,在浏览器中称为window对象,而在Node.JS中,唯一的全局对象被称为global,如果你想了解有关参数,可以进入Node环境,输入global.console查看有关参数。
2
process
process是Node.Js提供的另一个对象,表示当前Node.Js的进程。通过它可以查到许多有用的信息。(有兴趣的小伙伴可以去详细了解)
Node.js的内置模块——fs模块
fs(filesystem)模块,即文件系统模块,负责读写文件。
异步读取文件:
(注:sample.txt文件必须放在readfile.js文件当前目录下且字符编码为utf-8)
利用require()引入fs模块后,执行异步读取函数readFile(),前两个参数表明文件名及字符编码,第三个回掉函数传入两个参数err,data。正常读取时,err参数为null,data为读取到的string,读取异常时,err表示一个错误对象,data为undefined。
异步读取非文本文件:
当读取二进制文件时,不传入字符编码,data参数会返回一个Buffer对象(一个包含零个或多个字节的数组与Array不同)。
异步写文件:
与读取文件不同,writeFile()函数的第一个参数为所写文件的文件名,第二个参数为写入的文件数据data,回掉函数只需要一个err参数用于写文件出现异常时显示相关错误信息。
下期预告
fs模块的基本介绍就是这些,下期会带来与之密切相关的另一个模块Stream。
本期作者
编辑/OldFe
美工/Sc3o
Quanta(量子)信息技术服务中心是以半企业化模式运营的一个专业的IT技术组织,致力于大型的商业或非商业项目开发、技术攻关与自主产品研发工作。以育人文化为宗旨,Quanta秉持着“Nothing but professional.”的原则,培育出一届又一届优秀的IT人才。
在Quanta,我们推崇简单、务实的工作方式,在轻松、快乐的工作环境中积累和分享。你不只是在Quanta工作,是和一群志趣相投的人一起生活!
Quanta|互联网+广外人
以上是关于后端技术分享 | Node.js的模块介绍的主要内容,如果未能解决你的问题,请参考以下文章