1、采用事件驱动、异步编程,为网络服务而设计。其实Javascript的匿名函数和闭包特性非常适合事件驱动、异步编程。而且JavaScript也简单易学,很多前端设计人员可以很快上手做后端设计。
2、Node.js非阻塞模式的IO处理给Node.js带来在相对低系统资源耗用下的高性能与出众的负载能力,非常适合用作依赖其它IO资源的中间层服务。3、Node.js轻量高效,可以认为是数据密集型分布式部署环境下的实时应用系统的完美解决方案。Node非常适合如下情况:在响应客户端之前,您预计可能有很高的流量,但所需的服务器端逻辑和处理不一定很多。
Node.js缺点:
1、可靠性低
2、单进程,单线程,只支持单核CPU,不能充分的利用多核CPU服务器。一旦这个进程崩掉,那么整个web服务就崩掉了。
不过以上缺点可以可以通过代码的健壮性来弥补。
1. 使用nodejs做底层,javascript编写逻辑代码能很大程度上提高开发效率。2. 无需编译,修改完直接启动运行,非常迅速
3. nodejs大而全的底层库,以及海量的优秀插件能大大简化开发流程。
4. 与nosql数据库完美结合。
5. 可包揽服务器架构中的方方面面。
6. javascript热更新非常方便。
缺点:
1. 有句话是这么说的:“动态类型一时爽,代码重构火葬场。”
2. 好用的IDE比较缺乏。
3. 无法直接进行多线程编程。
个人认为强类型语言更适合做游戏服务器开发。