-
首先nodejs不是一门全栈式语言,也不是一个框架,更不是一个库,它仅仅只是JS的运行时环境,能解析和运行js代码罢了。
-
node是一个平台,支持在多端跨平台运行。(例如支持window、linux、Mac等操作系统)
-
node内置有一个基于V8引擎的js运行代码环境,使JS代码可以完全脱离浏览器而执行(我们可以将这里的引擎理解为汽车的发动机,我们的代码就是汽油,代码是具有特定格式的字符串,而引擎可以认识它,引擎可以帮我们却解析和执行代码,v8引擎公认是最快的)。
-
在node的这个JS执行环境中,node为JS提供了一些服务操作的API,使JS具有网络通信、构建http服务器、构建网络服务、文件读写、操作服务器和数据库的能力。
-
node的特点:事件驱动(event-driven)、轻量高效(lightweight and efficient)、非阻塞I/O模型(non-blocking I/O model)(即异步操作高效编程 )。
-
node的(高密集的I/O模型的身影):应用于大型web开发,微服务(各司其职)、淘宝双十一服务器、VSC、webpack。
-
node自带的npm已经成为世界上最大的开源库生态系统,绝大多数和js相关的包都存放在了npm上,方便开发人员使用。(此外还有我们熟知的yarn下载工具和cnpm淘宝镜像等等)。
-
node ===> vue (从MVC模型===>MVVM模型)
-
node可以用来做项目构建工具,比如vue-cli,webpack。
-
node是作为中间件的存在。
-
front-end 前端 | back-end 后端 | full-stack 全栈 | end to end 端到端
-
node可以做Web服务器后台(接口服务器、游戏服务器)、命令行工具(npm、webpack、gulp、hexo静态博客网站服务器)
-
后端服务器语言:node.js、Java、PHP、Ruby(国外用的多)、.Net。
-
服务端技术采用采用B/S编程模型(即Brower浏览器/Server服务器),node可以很好地作为我们学习B/S编程模型的工具。
-
Node提供了模块化编程思想参考:在Node中可以像@import()一样来引用加载js脚本文件。
-
node涉及到的异步编程解决方案:(回调函数、primise请求、async、generator)