简单的说:Node.js采用谷歌的V8引擎,是一个服务器端的、非阻断式I/O的、事件驱动的JavaScript运行环境。
关于非阻塞的理解
把非阻塞的服务器想象成一个饭店服务员,这个服务员会一直跑下去。一个新客户来了,这个服务员就接了这个请求,把这个请求传给厨师,厨师做饭,然后服务员响应一个回调(callback)让客户稍等。完事了这服务员就接着跑,接其他的客户。这样下来。服务员就不会像之前那样傻等着厨师做完饭返回结果了。
异步IO处理
文件读写异步处理,采用回调的机制,加快处理速度,不会等待,无视顺序,不停loop下去,不会产生阻塞,轻松处理高并发。
事件驱动
js的特性就是基于事件驱动,服务器只在用户那边有事件发生的时候才响应,这就是事件驱动。
node的使用场景:
适用于处理IO频繁但是CPU计算简单的场景(可以写博客,工具,聊天室,微服务等等)。
放到真正的业务场景之中作为中间层是再好不过的选择:在单页应用流行的今天可以轻松实现前后端同构,以此来提升页面渲染、加载速度,去除单页应用不利于SEO的负面影响。使用node可以对不同的后端服务进行一次全面整合,包括权限控制等很多方面。js是前端程序员所最熟悉的语言之一,学习成本低但是收益高,node所实现的中间层完全可以由前端程序员完成。
网友评论