Node.js是可以让JavaScirpt语言编写的脚本运行在服务端的开发平台。人们熟知JavaScript是一种web前端语言,但是Node.js平台让JavaScript也变成了服务器端的脚本语言。
Node.js决定JavaScript作为开发语言的原因有二:其一,JavaScript满足CommonJs标准,符合事件驱动,用户多并且学习门槛较低;其二,Chrome的V8引擎具有出色的性能,Node.js将V8引擎封装起来,当做服务器的运行平台。
Node.js运行环境包括了执行JavaScript程序所需要的一切条件,能将JavaScript代码转换成为更快的机器代码。
Node.js扩展了JavaScript的能力,使其可以操作文件、数据库甚至进程的功能,从而可以胜任服务器后端的任务。
Node.js有以下优势和特点如下:
(1)莫过于让开发人员一个人干完前端和后端的所有功能开发,因为无需学习另外一种语言。
(2)跨平台:可以运行在Windows、MacOS以及Linux平台上。
(3)Node.js除了拥有自己丰富的标准的类库外,还可以运用大量的第三方的模块代码。
(4)Node.js内置了处理网络请求和响应的函数库,即自备了Http服务器,无需另外部署,这是和其他后端语言的不同。
(5)非阻塞I/O:又称之为异步I/O,阻塞I/O是指线程在执行过程中遇到了I/O操作时,操作系统会撤销该线程的CPU控制权,使其暂停,处于等待状态,同时将资源让给其他线程。而非阻塞式I/O是指线程在遇到I/O操作时,不会以阻塞方式等待I/O操作完成或数据返回,只是将I/O操作请求转发给操作系统,自己继续执行下一条指令。
(6)事件驱动:Node.js的异步机制,就是基于事件的。 Node.js会将每一个任务都当成一个事件来处理,Node.js会在执行过程中维护一个事件队列,当有新的任务时,加入事件队列并提供一个包含处理结果的回调函数。Node.js会生成一个事件循环线程来监听事件,检查是否有未处理的的事件。Node.js的磁盘I/O、网络通信、以及数据库查询事件都是非阻塞式的请求,返回结果由事件循环线程来处理。
至此,以上是关于Node.js的一些介绍,欢迎批评指正。