什么是Node.js以及为什么要用node.js

通过翻阅官方手册,得到以下信息

  • Node.js 是一个开源与跨平台的 JavaScript 运行时环境。
  • Node.js 在浏览器外运行 V8 JavaScript 引擎(Google Chrome 的内核)。

由此我们可以简单认为,node.js是一个让JavaScript脱离浏览器之外运行的环境或语言解释器。

其主要具有以下几个特征:

服务器端JavaScript处理

node.js的出现使得javascript代码实现了脱离客户端执行,与传统的web开发者前端使用js,后端服务器使用另一种语言如php,python相比,node.js给开发者提供了一个编写后端服务器代码的环境,实现了一定程度上的前后端统一,使得开发者无需学习另一门完全不同的语言,其高度的代码复用性,也大大提升了开发者的效率。

单线程

传统的服务器每次一个新用户连到你的网站上时,服务器就得开一个连接。每个连接都需要占一个进程,这些进程大部分时间都是闲着的,因此很容易造成内存浪费,而node.js仅仅使用一个线程。当有用户连接了,就触发一个内部事件,通过非阻塞 I/O、事件驱动机制,使得这种模式正常运转。

非阻断/异步I/O

在传统的单线程处理机制中,在执行了访问数据库代码之后,整个线程都将暂停下来,等待数据库返回结果,才能执行后面的代码。也就是说,I/O阻塞了代码的执行,极大地降低了程序的执行效率。而node.js进行I/O操作的时候,将调取后面其他部分的计算,直至I/O完成,然后再进行原来部分I/O操作后的后续计算。通俗的描述就是在一件事没做完之前不要停下来,继续做下一件。

事件驱动

非阻断I/O需要事件驱动机制的配合才能顺利运转。在Node.js中,客户端请求建立连接,提交数据等行为,会触发相应的事件,服务器只在用户那边有事件发生的时候才响应。接收到请求,就把它关闭然后进行处理,然后去服务下一个请求。这样,保证了非阻断I/O的顺利进行,提升了效率。

通过采用单线程,非阻断I/O,事件驱动的模型,node.js在减少内存开销的同时,也大大提升了处理业务的效率。

Node.js的使用方法

命令行运行node.js脚本

安装node.js后,只需在命令行输入node即可进入交互环境

可以直接在命令行中执行js代码

也可执行目录下js脚本