前言:上周刚在组里做了一个关于node.js的技术分享,内容通俗易懂且简单明了。普遍反映不错,所以将它分享在掘金平台,希望更多需要了解node.js的人可以看到
1. 什么是Node.js?
基本概念:基于Chrome V8引擎的javascript运行环境。
换言之:首先,node.js并不是什么开发语言、后端语言,它是一个环境或者叫平台,是javascript语言可以直接运行的环境。
2. Node.js原理?
node.js平台之所以可以运行javascript语言,是因为底层采用了V8引擎。google chrome浏览器之所以可以运行前端javascript和html文件,就是依靠性能强大的V8引擎。而node.js就是参考了chrome浏览器的技术,搭建的一个新平台。在node.js之前,javascript语言局限于浏览器。有了node.js之后,拓展了javascript的运行环境。
原理图如下:

3. Node.js特点?
a. 异步I/O:异步读写文件,关于异步和同步问题可以自行百度了解。
b. 单线程: 优点是不存在像java一样多线程死锁等情况,可以高性能利用单核CPU。 缺点就是无法利用多核CPU
c. 事件驱动和回调
d. 跨平台:适用于window,linux

4. Node.js使用场景?
其实作为前端开发人员,已经在不知不觉中使用node.js。比如前端框架的脚手架指令的运行必须依赖node.js环境,比如webpack打包工具,npm包管理(通过npm install package), 编写后端程序(express框架)。

5. 如何借助node.js构建完整web项目?
在搭建了node.js的环境下,可以利用前端框架+mongodb数据库+express框架构建一个完整的web项目。只需要你掌握了javascript语言,便可以轻松搞定这一切,所需的无非是对框架的熟悉而已。

6. 对比java
其实拿node.js对比java是错误的,因为它们不是一个级别的东西。node.js是平台,java是语言。如果非要进行对比,node.js可以对比JVM,javascript语言可以对比java语言。前者是后者语言的运行环境而已。

下期预告:探秘git