Rumah  >  Artikel  >  hujung hadapan web  >  node.js适合做什么?用node.js的好处在哪里?

node.js适合做什么?用node.js的好处在哪里?

寻∝梦
寻∝梦asal
2018-09-05 15:29:228147semak imbas

本篇文章主要的讲述了关于node.js适合的方向,node.js适合做什么?还有node.js有哪些好处?具体的详情请看文章。

一、我们先谈谈node.js适合做什么:

首先来说,nodeJs是前端全栈的基石,它的应用场景已经从前端工具的脚手架、辅助工具类,发展到api中间层、代理层,以及专业的后端开发。

这其中最有价值的就是api中间层。现在的大趋势是越来越多的业务被推到前端,后端专注于只提供服务。很典型且常见的工作场景就是,前后端协作的时候,因为进度不同有时前端需要等后端的接口。

这种时候,nodeJs的中间层应用就可以很好的解决这个问题。前端通过nodeJs可以自己约定数据的格式,根据前端的需求定制自己的接口,自己封装对数据库的crud操作,创建自己的代理和网关服务器等。这些事情在以往只能是等着后端做,但现在通过nodeJs前端都可以自己搞定,这就使得工作的过程更加可控。

当然了这也对前端开发人员提出了更高的要求,至少数据库、架构设计、系统结构 、网络应用这些短板都需要慢慢补齐。

据说啊我也不确定,nodeJs最开始是给后端搞的,只不过为了简单、异步、大并发而选择了Java语言,阴差阳错之下被前端发现并发扬光大。

所以前端搞nodeJs必然是向后端侵蚀,而后端的开发结构、技术栈已经很完整了,所以后端一般不愿意变动,所以很多时候对于nodeJs的阻力,其实是来源于后端的保守。当然这也是有一定道理的,因为后端主要是服务、数据、底层应用,这些东西都求稳、求安全、还有些历史遗留问题,所以它们不喜欢新东西。

所以在现阶段吧,很多nodeJs的应用都是处于前端和后端之间的桥梁。一般来讲,没有什么历史包袱的新公司啊,创业公司啊,孵化项目之类的更愿意使用nodeJs,快速、高效嘛。

现在基本上所有的前端应用都有nodeJs的影子,什么React、vue、angular等,它的应用场景和就业市场也都很大,所以nodeJs的学习不是让你可以做什么,而是让你多了一个施展的空间。(想知道更多node.js的内容,就来PHP中文网的node.js视频教程栏目)

二、现在来说说用node.js的好处:

正如您此前所看到的,Node 非常适合以下情况:在响应客户端之前,您预计可能有很高的流量,但所需的服务器端逻辑和处理不一定很多。我们总结了Node的三点好处,也可以说是表现出众的典型示例:

1.RESTful API

提供 RESTful API 的 Web 服务接收几个参数,解析它们,组合一个响应,并返回一个响应(通常是较少的文本)给用户。这是适合 Node 的理想情况,因为您可以构建它来处理数万条连接。它仍然不需要大量逻辑;它本质上只是从某个数据库中查找一些值并将它们组成一个响应。由于响应是少量文本,入站请求也是少量的文本,因此流量不高,一台机器甚至也可以处理最繁忙的公司的 API 需求。

2.Twitter 队列

想像一下像 Twitter 这样的公司,它必须接收 tweets 并将其写入数据库。实际上,每秒几乎有数千条 tweet 达到,数据库不可能及时处理高峰时段所需的写入数量。Node 成为这个问题的解决方案的重要一环。如您所见,Node 能处理数万条入站 tweet。它能快速而又轻松地将它们写入一个内存排队机制(例如 memcached),另一个单独进程可以从那里将它们写入数据库。Node 在这里的角色是迅速收集 tweet,并将这个信息传递给另一个负责写入的进程。想象一下另一种设计(常规 PHP 服务器会自己尝试处理对数据库本身的写入):每个 tweet 都会在写入数据库时导致一个短暂的延迟,因为数据库调用正在阻塞通道。由于数据库延迟,一台这样设计的机器每秒可能只能处理 2000 条入站 tweet。每秒处理 100 万条 tweet 则需要 500 个服务器。相反,Node 能处理每个连接而不会阻塞通道,从而能够捕获尽可能多的 tweets。一个能处理 50,000 条 tweet 的 Node 机器仅需 20 台服务器即可。

3.电子游戏统计数据

如果您在线玩过《使命召唤》这款游戏,当您查看游戏统计数据时,就会立即意识到一个问题:要生成那种级别的统计数据,必须跟踪海量信息。这样,如果有数百万玩家同时在线玩游戏,而且他们处于游戏中的不同位置,那么很快就会生成海量信息。Node 是这种场景的一种很好的解决方案,因为它能采集游戏生成的数据,对数据进行最少的合并,然后对数据进行排队,以便将它们写入数据库。使用整个服务器来跟踪玩家在游戏中发射了多少子弹看起来很愚蠢,如果您使用 Apache 这样的服务器,可能会 有一些有用的限制;但相反,如果您专门使用一个服务器来跟踪一个游戏的所有统计数据,就像使用运行 Node 的服务器所做的那样,那看起来似乎是一种明智之举。

以上就是关于node.js的用处和node.js的好处的介绍了(想看更多内容就到PHP中文网node.js中文参考手册栏目),有问题的可以在下方提问

【小编推荐】

node.js该怎么使用?通俗的讲一下node.js的应用过程:

node.js是做什么的?node.js的10种应用场景介绍

Atas ialah kandungan terperinci node.js适合做什么?用node.js的好处在哪里?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn