在本文开始前,先给大家分享几个好用的IDEA激活码
这里提供几个最新的激活码,有需要的朋友可以试试,先到先用:
2022和2023Intellij IDEA最新激活码,IDEA稳定专属激活码(持续更新)
2022和2023Pycharm激活码,Pycharm稳定专属激活码(持续更新)
2022和2023Webstorm激活码,Webstorm稳定专属激活码(持续更新)
JavaScript在过去十年中尤为突出,因为它提供的功能和工具是为现代 Web 开发(以及许多其他用例)而设计的。JavaScript 结合了速度、可访问性和全球庞大的开发人员基础,导致基于该语言的工具数量不断增加。也许该集合中最受欢迎的工具是Node.js。
为什么所有关于Node.js的炒作?一个主要用 JavaScript 编写的工具包,包括 Google 的 V8 JavaScript 引擎、libuv 平台抽象层和一个核心库,Node.js 是专门为开发人员设计的一种工具,用于在非阻塞、事件驱动的 I/哦范例。简而言之,Node.js 旨在专门用于采用推送技术的实时 Web 应用程序。
随着应用程序变得越来越实时(信息在几秒钟内刷新,而不是过去互联网的几分钟和更长的时间),构建这些类型的应用程序的解决方案变得越来越重要。这就是为什么 Node.js 继续吸引忠实的开发人员,并为现代编程挑战和需求提供强大的解决方案。但是要知道为什么它对您的编程知识如此有用,您需要知道 Node.js 包含什么以及它可以做什么。这就是本指南可以提供帮助的地方。
为什么最初开发 Node.js?
经过多年的无状态网络(建立在无状态请求-响应范例之上)之后,现代网络应用程序现在越来越多地实时、双向连接。简单来说,在这些情况下,服务器和客户端都可以发起通信,从而允许更自由的数据交换。这与历史上的无状态 Web 响应范式非常不同,在这种范式中,客户端始终发起通信。此外,这一切都基于开放的网络堆栈。
许多人以 Java Applets 和 Flash 等工具为例,说明此类功能已存在多年。然而,这些工具实际上只是沙盒环境,使用网络作为传输协议交付给客户端。此外,它们是孤立运行的,并且经常在非标准端口上运行,这可能需要额外的权限和其他烦人的障碍才能跳过。
由于其上述优势(以及这种新的 Web 范式),Node.js 现在在依赖其独特优势的许多知名公司的技术堆栈中发挥着关键作用。
Node.js 是如何工作的?
简而言之,Node.js 满足了现代 Web 开发中非常具体和基本的需求。例如,Node.js 不适合 CPU 密集型操作,这实际上消除了它为程序员提供的大部分优势。相反,Node.js 是构建快速和可伸缩网络应用程序的理想选择(可伸缩性允许软件在各种系统上以最佳方式运行,也是现代 Web 开发的基本要素)。这是因为它能够通过高吞吐量处理大量同时连接。换句话说,Node.js 可以帮助您管理实时流量和服务器请求的激增。
那么这个功能的具体细节是怎样的呢?好吧,与每个连接(或请求)生成一个新线程的传统 Web 服务技术相比,这会消耗系统 RAM 并最终达到可用 RAM 量的最大值,Node.js 在单线程上运行,使用非- 阻塞 I/O 调用。这允许 Node.js 支持在事件循环中保持成千上万的并发连接。
编写 Node.js 应用程序的一个潜在缺点是可能会在所有客户端请求之间共享一个线程。这是有问题的,因为繁重的计算可能会阻塞 Node 的单线程并导致所有客户端出现问题,因为传入请求将被阻塞,直到此计算完成。幸运的是,快速发展的 Node.js 开发者社区已经产生了各种有用的工具来解决这个问题(以及其他已经出现的问题)。
关于节点包管理器 (NPM),您应该了解什么?
Node.js 最受欢迎和最有用的元素之一是使用 NPM 对包管理的标准内置支持,默认情况下它包含在任何 Node.js 安装中。与 Ruby Gems 的理念非常相似,NPM 为程序员提供了一组公开可用且可重用的组件。这些都可以通过在线存储库轻松安装,并附带版本和依赖管理。
今天一些最有用的 npm 模块是:
- express – 也称为 Express.js,此工具是受 Sinatra 启发的 Node.js 网络开发框架,是现代网络上使用的大多数 Node.js 应用程序的首选标准(包括一些软件界的大腕)
- socket.io和sockjs – 当今使用的两个最常见的 websockets 组件的服务器端组件
- lodash(下划线、lazy.js)——这是你的标准 JavaScript 实用工具(有多种可供选择)
- hapi – hapi 是一个以配置为中心的框架,用于构建 Web 和服务应用程序,由于其易于使用而越来越受欢迎
- moment – 用于解析、验证、操作和格式化日期的 JavaScript 日期库
- connect – 作为一个 HTTP 服务器框架,它提供了一组称为中间件的高性能“插件”,它作为 Express 的基础
- pug(以前称为 Jade)- 受 HAML 启发的更流行的模板引擎之一,也是 Express 中的默认引擎
- mongodb和mongojs – MongoDB 包装器,为 Node.js 中的 MongoDB 对象数据库提供 API。
- redis -Redis 客户端库。
- forever – 可能是确保给定节点脚本连续运行的最常用实用程序。这对于在特定错误和故障期间保持 Node.js 产品的正常运行至关重要
- bluebird – 具有出色性能的全功能 Promises/A+ 实现
有越来越多的工具可用,全球 JavaScript 社区每天都在添加更多工具。与任何优秀且流行的语言一样,发现的错误和问题越多,就会开发出越多的解决方案来为您解决这些问题。
Node.js 的一些流行用例是什么?
排队输入
在您可能接收大量并发数据的情况下,您的数据库可能成为瓶颈。幸运的是,Node.js 可以轻松地自己处理并发连接。但是,由于数据库访问可能是一个阻塞操作,这可能会给后端带来麻烦。解决方案是在数据真正写入数据库之前确认客户端的行为。
通过这种方法,系统即使在承受重负载时也能保持其响应能力。当客户端不需要对数据写入成功的坚定确认时,这尤其有用。这可能包括诸如记录或写入用户跟踪数据的情况,这些数据是分批处理的,直到以后才使用;以及不需要立即反映的操作(例如在 Facebook 上更新“喜欢”计数),最终一致性是可以接受的。
数据通过缓存或消息队列基础设施排队,随后由单独的数据库批处理写入过程或计算密集型处理后端服务进行消化,为此类任务编写在性能更好的平台中。虽然其他语言和框架可以执行类似的行为,但硬件并不相同,而 Node.js 可以更高效、更可靠地执行此操作。
聊天
聊天是最常见的实时多用户应用程序,其中经常使用 Node.js。聊天应用程序确实是 Node.js 提供的优势的理想示例,因为它是跨分布式设备运行的轻量级、高流量、数据密集型(但处理/计算量低)应用程序。对于那些刚刚开始学习Node.js 的人来说,这也是学习细节的好地方,因为聊天很简单,但也涵盖了您在任何典型 Node.js 应用程序中使用过的大部分范例.
数据流
在更传统的 Web 平台中,HTTP 请求和响应通常像孤立的事件一样处理,而实际上它们是流。可以在 Node.js 中利用这种观察来构建一些很酷的功能,例如在文件仍在上传时处理文件(因为数据通过流进入,因此可以在线方式处理)。这在实时音频或视频编码以及不同数据源之间的代理的情况下特别有用。
代理人
说到代理,Node.js 很容易用作服务器端代理,它可以以非阻塞方式处理大量并发连接。它对于代理具有不同响应时间的不同服务或从多个源点收集数据特别有用。
发布者:admin,转转请注明出处:https://www.ajihuo.com/soft/5154.html