这是我参与更文挑战的第7天,活动详情查看: 更文挑战
事前烟🚬
工作的第一家公司是用node做服务端,vue做前端开发的,开发了一年多实际的项目,对node也还是一知半解,没有形成知识体系,在我看来就是用egg脚手架写几个接口,写几行sql,几乎是全干,但是仅此而已。加上公司人员分配感觉是有点不合理,几乎每个开发都是什么都做,甚至项目部署,虽然说不是很难,但是这样一个工作流程,是很难保证各阶段的事情都能做好。
既然如此,那就唯有不断去学习,尽量做好每一个步骤吧!!!
安装、环境搭建之类的,就没必要再总结了,这些网上一大把。在接触实际项目过程中,有两个是node这么多模块中重中之重的,那就是fs模块和http模块,所以在学习node.js的时候,这两部分的知识点,一定要精通。
还有,既然node能作为服务端,那它肯定是做到一些服务器要做到的事情,而服务器想要做到的一些事情,就必须搞懂互联网的分层架构(应用层、传输层、网络层、链路层、物理层).对于网络的每个层次,Node.js基本也都有与之对应的模块,比如https、http、net(TCP)、tls/crypto等。所以相关知识基础一定要有。
fs模块
什么是流
流是基于事件的API,用于管理和处理数据,流是能够读写的,是基于事件实现的一个实例。
如果没有流,该怎么处理数据?用fs.readFileSync或者fs.readFile等,前者会同步读取文件,程序会阻塞,所有数据被读到内存,而后者虽然阻止了程序阻塞,但仍会将文件所有数据读取到内存中,而我们希望用少内存去读取大文件,读取一个数据块到内存处理完再去读取更多的数据。