这是我参与「第五届青训营 」笔记创作活动的第7天
一、本堂课重点内容:
- 介绍 Node.js 的应用场景
- 介绍 Node.js 运行时结构
- 如何用编写 Http Server
- 延伸话题
二、详细知识点介绍:
Node.js学习成本更低,在前端工程化地位暂时难以替代。
在Web服务端应用中,学习更加平缓,开发效率更高。社区生态丰富而且工具链成熟,例如npm,v8 inspector,与前端结合的场景会有优势,像SSR。但是基于面前的现状就是行业竞争越来越激烈,Node.js有自己独特的优势。
在Electron跨端桌面应用中,可以应用于vscode,slack,discord,zoom等。是大型公司内的效率工具,所以说对于目前大部分场景在选型时,是不二之选。在字节跳动中,例如最新推出的Modern.js在SSR应用中试用。服务端应用也有西瓜视频等。越来越多的应用场景会基于Node.js。
Node.js运行时结构有V8,libuv。V8是JavaScript Runtime,诊断调试工具(inspector),libuv是eventloop(事件循环),syscall(系统调用)。运行时结构特点有:异步i/o,单线程,跨平台。异步I/O效率高,不会挤占内存。单线程会比较更高效利用系统资源。跨平台可以做到开发成本低,整体学习成本低。
编写http server主要利用http.creatServer(),利用req返回资源进行调用。也可以用Promis+await重写,技巧就是将callback转换成promise,这什么情况下不适用,在于req是多次调用的情况下不推荐使用。
三、实践练习例子:
静态文件编写,根据磁盘文件路径,把文件读取出来,再返回请求。
四、课后个人总结:
Node.js是前端开发中非常重要的框架,学会它,善用它,也基本走向了一个前端工程师的道路了,加油!