这是我参与[第五届青训营]伴学笔记创作活动的第5天。 本堂课的重点知识点主要在于认识与了解Node.js这一门语言. 简单的说 Node.js 就是运行在服务端的 JavaScript。
Node.js是一个事件驱动I/O服务端JavaScript环境,基于Google的V8引擎,V8引擎执行Javascript的速度非常快,性能非常好。 如果你是一个前端程序员,你不懂得像PHP、Python或Ruby等动态编程语言,然后你想创建自己的服务,那么Node.js是一个非常好的选择。 Node.js 是运行在服务端的 JavaScript,如果你熟悉Javascript,那么你将会很容易的学会Node.js。 当然,如果你是后端程序员,想部署一些高性能的服务,那么学习Node.js也是一个非常好的选择。
node.js的应用场景 - 前端工程化
node.js的应用场景 - Web服务端应用 学习曲线平缓,开发效率较高,运行效率接近常见编程语言,社区圣爱丰富及工具链成熟,与前端结合的场景会有优势
node.js的应用场景 - Electron跨端桌面应用 商业应用,大型公司内的效率工具
node.js运行时结构 - V8(js runtime,诊断调试工具),libuv(事件循环,系统调用)
node.js运行时结构 - 特点:异步I/O,单线程,跨平台
当node.js执行异步操作时,会在响应返回后恢复操作,而不是阻塞线程并占用额外内存等待。
node.js的单线程,实际:JS线程+uv线程池+V8任务线程池+V8 Inspector线程 优点:不用考虑多线程状态同步问题,也就不需要锁;同时还能比较高效地利用系统资源 缺点:阻塞会产生更多负面影响 解决办法:多进程或多线程
node.js跨平台:node.js跨平台+js无需编译环境(+Web跨平台+诊断工具跨平台) =开发成本低,整体学习成本低
NPM
NPM全称Node Package Manager,是Node.js包管理工具,是全球最大的模块生态系统,里面所有的模块都是开源免费的;也是Node.js的包管理工具,相当于前端的Maven 。
安装node.js win推荐nvm4w或是官方安装包,安装慢,安装失败的情况,设置安装源