Node.js功能实例分析

今天小编给大家分享一下Node.js功能实例分析的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。

成都创新互联长期为1000+客户提供的网站建设服务,团队从业经验10年,关注不同地域、不同群体,并针对不同对象提供差异化的产品和服务;打造开放共赢平台,与合作伙伴共同营造健康的互联网生态环境。为沁县企业提供专业的成都网站设计、网站制作,沁县网站改版等技术服务。拥有10余年丰富建站经验和众多成功案例,为您定制开发。


我们来看下面的例子,以下程序实现的功能是最简单的,即打印出“Hello world”。

const http = require('http');
 
const hostname = '127.0.0.1';
const port = 1337;
 
http.createServer((req, res) => {
  res.writeHead(200, { 'Content-Type': 'text/plain' });
  res.end('Hello World\n');
}).listen(port, hostname, () => {
  console.log(`Server running at http://${hostname}:${port}/`);
});

在上面的例子中,许多链接可以被同时处理。没来一个链接请求,回调函数会被调用一次,如果没有工作的话node将处在睡眠中。

基于以上一点,与现在那些通过操作系统线程实现并发的模型对比发现,基于线程的网络应用效率相对低下并且使用也相对比较复杂。进一步来说,Node用户不用担心进程死锁——因为Node没有使用锁。而且在Node中几乎没有一个方法是直接去操作I/O的,因此进程永远不会被阻塞。正是因为Node不会被阻塞,因此经验少的程序员同样也可以开发出可伸缩的系统。

受Ruby’s Event Machine 或者 Python’s Twisted 等系统的影响,Node 在设计上和这些系统很相似,Node采用事件模型,将事件轮询作为了语法结构而不是作为应用库。在其他的系统中是通过阻塞调用开始事件轮询,典型的一个应用就是在脚本开始的时候通过回调函数定义一个行为,并且在脚本结束的时候再次通过类似于EventMachine::run()的阻塞调用开启一个服务。在Node中没有start-the-event-loop 的调用,只是执行完输入脚本以后就开始进入事件轮询了,当再没有回调函数执行的时候退出轮询。这种方式就像浏览器的javascript——事件轮询对于用户来说是透明的。

以上就是“Node.js功能实例分析”这篇文章的所有内容,感谢各位的阅读!相信大家阅读完这篇文章都有很大的收获,小编每天都会为大家更新不同的知识,如果还想学习更多的知识,请关注创新互联行业资讯频道。


分享名称:Node.js功能实例分析
链接分享:http://pwwzsj.com/article/pepjii.html