nodeJS( 一)什么是node

1.官网上对node的定义

Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行环境。
Node.js 使用了一个事件驱动非阻塞式 I/O 的模型,使其轻量又高效。
Node.js 的包管理器 npm

2.为什么使用node

  • Node使用的是为Google Chrome提供动力的V8虚拟机,它省调了中间环节,执行的不是字节码,用的也不是解释器,而是直接编译成了本地机器码
  • 开发人员用一种语言就能编写整个程序,这可以减少开发客户端和服务端时所需的语言切换。这样代码可以在客户端和服务端中共享,比如在表单校验或游戏逻辑中使用同样一段代码。
  • Node用的虚拟机(V8)会紧跟ECMAScript标准。在Node中如果想用新的JavaScript语言特性,不用等到所有浏览器都支持。

    3.一个简单的http服务器

var http = require('http')
http.createServer( (req,res) => {
    res.writeHead(200, {'Content-Type: 'text/plain'});
    res.write('hello world');
    res.end();
}).listen(8000)

4.数据流
Node在数据流和数据流动上很强大,数据流中的数据是分布在时间上的。通过将数据一块一块的传送,开发人员可以每收到一块数据就开始处理,而不是等所有数据都全了在做处理。

var  fs= require('fs');
var steam = fs.createStream('./resource.json', (chunk) => {
    console.log(chunk)
})
steam.on('end', () => console.log('finished'))

上面的代码中,只要有新的数据块准备好,就会激发data事件。当所有数据块都加载完之后,会激发一个end事件。由于数据类型不同,数据块的大小可能会发生变化。对于读取流的底层访问,程序就可以边读取边处理,这要比所有数据都缓存到内存中在处理效率高。

node中也有可写数据流,可以往里写数据块,当Http服务器上有请求过来时,对齐进行响应的res对象就是可写数据流的一种。

可读和可写数据流可以连接起来形成管道,这是一种高效的数据处理方式,只要有数据块准备好就可以处理。不用等着读取完整个资源在把它写出去。

var http = require('http')
var fs = require('fs')
http.createServer( (req, res) => {
    res.writeHead(200, {'Content-Type': 'image/png'})
    fs.createSteam('./iamge.png').pipe(res)
}).listen(3000)

在上面的这行代码中,数据从文件中读进来(fs.createReadSteam),然后数据随着进来就被送到(.pipe)客户端(res),当数据流动时,事件轮询还能处理其他事件。

5.DIRT程序
data-intensive real-time 数据密集型实时程序。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值