什么是Node.js

     1.什么是Node.js?

Node是一个JavaScript运行环境(runtime)。实际上它是对GoogleV8引擎(应用于Google Chrome浏览器)进行了封装。V8引 擎执行Javascript的速度非常快,性能非常好。Node对一些特殊用例进行了优化,提供了替代的API,使得V8在非浏览器环境下运行得更好。(摘自百度百科)

      Node.js并非一种语言,而是一个运行环境,其主要是基于GoogleV8引擎进行封装的一个解析器。其目的是可以在服务器端执行和运行Javascript代码,长久以来javascript都是一个基于浏览器的客户端脚本语言,通过将其运行环境抽离出来,就可以在服务器端运行javascript代码,而并非仅仅依赖浏览器解析,从而就可以将其作为服务器端语言,而其异步非阻塞特性,因此其在长连接、多请求的环境下优势非常明显。

      Node.js的编程语言还是基于javascript,因此想深入学习了解Node.js的入门者,还是应该去熟悉的javascript编程语言,同时要对服务端开发有所了解。Node.js提供了一些特殊的API(官网有详细),因此在编写Node.js的时候可以理解为,使用javascript语言,利用Node.js的API进行服务端开发。

2.Node.js能带来什么?

       传统的服务器端语言PHP和Java,每个连接产生式一个线程,每个线程大概需要2M的配置内存,因此相对一个8G的服务器主机,也只能承受来自4000个并发用户的请求,当服务器承受不了这么多用户的情况下就需要添加服务器,增加运营成本。Node 解决这个问题的方法是:更改连接到服务器的方式。每个连接发射一个在 Node 引擎的进程中运行的事件,而不是为每个连接生成一个新的 OS 线程(并为其分配一些配套内存)。Node 声称它绝不会死锁,因为它根本不允许使用锁,它不会直接阻塞 I/O 调用。Node 还宣称,运行它的服务器能支持数万个并发连接。(摘自IBM——Node.js是什么?)

      Node.js拥有异步非阻塞特性。利用该特性可以开发这类项目如:实时在线Game(这部分可以很好的利HTML5的知识,进行整合开发游戏,比如“大家一起来画画”),黑暗杀人游戏, 实时休闲游戏(扑克、象棋、麻将等);

实时在线聊天室,实时消息推送功能,SNS实时交流等;实时监控系统(例如:股票、系统运行状态等);当然不是所有项目都适合使用Node.js来做,毕竟PHP和其他服务器端语言比较成熟,在安全性方面更优于Node.js,当然Node.js也在慢慢的成熟阶段。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值