NodeJS特点
- web服务器的主要特点是:事件驱动,非阻塞I/O,单线程,跨平台
- 自身非常简单,通过通信协议来组织许多node,通过拓展来达成构建大型网络应用的目的。每一个node进程都构成这个网络的一个节点
- 适用于io密集型
node和浏览器的对比
- 浏览器除了v8引擎意外,还有webkit布局引擎,浏览器提供了越来越多的功能暴露给了javascript和html标签。
- 基于事件驱动的。浏览器通过事件驱动来服务界面上的交互。node通过实践驱动来服务I/O![外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传](https://img-home.csdnimg.cn/
特点
- 异步io
- 读取文件
var fs = require('fs') fs.readFile('/path',function (err, file) { console.log("文件读取完成") }) console.log("发起文件读取")
- 在node中,绝大多数的请求都是以异步的方式调用。同步io
来说,耗时是两个任务的耗时之和。
- 事件和回调函数
var http = require('http') var querystring = require('querystring') // request事件 http.createServer(function(req, err) { var postData = '' res.setEncoding('utf8') //监听data事件 req.on('data',function(trunk) { postData += trunk }).listen(8080) })
- 单线程
- 不用在意状态的同步。
- 弱点
- 无法利用多喝GPU
- 健壮性弱,try-catch
- 大量计算导致CPU占用
- 跨平台
- web2.0