Node.js 初步了解
Posted kun666
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Node.js 初步了解相关的知识,希望对你有一定的参考价值。
Node.js的特点:单线程、非阻塞异步I/O、事件驱动。
先来说说I/O:I就是input数据读取,O就是Output数据的写入,大部分网站I/O是非常多的,,但是I/O的时候cpu是命令磁盘去做事情,此时CPU自己就闲置了。
同步(synchronous):当系统遇见了一个需要耗费大量时间的事情的时候,选择死等。
异步(Asynchronous):当系统遇见了一个需要耗费大量时间的事情的时候,不死等,先做后面的事情,耗时事情做完之后,执行回调函数。
Node.js是后台的东西
我们写一段程序来举例
//读取内置模块http,这个模块开发服务器用的 var http = require("http"); //创建一个服务器 var server = http.createServer(function(req,res){
res.setHeader("Content-Type","text/html;charset=UTF-8"); res.end("<h1>哈哈哈,我买了一个iPhone" + (4 + 4) + "Plus,</h1>"); }); //监听 server.listen(3000)
写完后使用cmd命令调用
在Node.js中用谁 就Node谁
此时光标挂起,并没有返回,表示此时node正在执行一个监听。
按ctrl+c可以将结束挂起状态。
访问3000端口就可以看到页面了
我们F12查看源代码
此时我们查看源代码,我们发现数字8是直接写上去的,没有4+4的运算痕迹。
原因就是NodeJS运行在服务器端,而不是浏览器端。服务器计算了数字8之后,发给了浏览器就是扁平的、纯粹的HTML了,没有任何程序。
单线程
Node.js中只使用一个线程。
异步I/O特性
简要概括就是:
当在访问数据库取得数据的时候,需要一段较长的时间。在传统的处理机制中,在执行了访问数据库代码之后,整个线程都将暂停下来,等待数据库返回结果,才能执行后面的代码。也就是说,I/O阻塞了代码的执行,极大地降低了程序的执行效率。
由于Node.js中采用了非阻塞型I/O机制,因此在执行了访问数据库的代码之后,将立即转而执行其后面的代码,把数据库返回结果的处理代码放在回调函数中,从而提高了程序的执行效率。
事件驱动
事件驱动是NodeJS的底层机制,我们只需要了解NodeJS不会发生错误的原因就是事件驱动,有一个事件环。
事件环机制是NodeJS的底层机制,保证了NodeJS可以高效准确的运行而不会紊乱。
node.js适合干什么?
当应用程序需要处理大量并发的I/O,而在向客户端发出响应之前,应用程序内部并不需要进行非常复杂的处理的时候,Node.js非常适合。Node.js也非常适合与web socket配合,开发长连接的实时交互应用程序。
比如:
● 用户表单收集
● 考试系统
● 打分系统
● 聊天室
● 图文直播
以上是关于Node.js 初步了解的主要内容,如果未能解决你的问题,请参考以下文章