云服务器价格_云数据库_云主机【优惠】最新活动-搜集站云资讯

域名解析_云服务器是干嘛的_速度快

小七 141 0

ecs服务器_如何选_人工智能怎么样

当你玩得开心的时候,时间过得真快!已经七年多了节点.jsv0.10.x已经发布,现在我们迎来了自节点.js基础:节点.jsv10.0.0!从那以后,我们活泼的非阻塞I/O朋友发生了很大的变化。让我们回顾一下在这个新版本中有什么新的,有什么改变的,还有什么被弃用的!支持现代密码学节点.js10升级到opensslv1.1.0。此外,密码支持现在包括ChaCha20密码和Poly1305验证器。根据IETF的文档,ChaCha20是一种高速密码(在纯软件实现中比AES快得多),对定时攻击不敏感。同一组织将Poly1305定义为一种高速消息认证代码,具有简单明了的实现方式。2014年,谷歌在Chrome上部署了一个新的密码套件,在大多数Android设备上运行速度是AES-GCM的三倍,从而提高了电池寿命和加密性能。这个TLS密码套件实现了用于对称加密的chacha20和用于身份验证的Poly1305。openssl1.1.1的未来版本包括对tls1.3的支持,tls1.3现在包括ChaCha20流密码和Poly1305消息认证代码,以使web更加安全。随着openssl1.1.0的加入,Chacha20和Poly1305使得tls1.3支持变得更加容易节点.js在2018年10月达到长期支持(LTS)之前,将尖端密码技术引入生态系统。实验预期fs函数实验性的fs/promises API为我们提供了一组可选的异步文件系统方法,这些方法返回Promise对象而不是使用回调。我们可以通过require('fs/promises')访问这个API。让我们来看看fs Promises API的一个示例。为此,我们需要安装Node v10.0.0。我建议您通过节点版本管理器(如nvm)安装当前版本,以便您可以根据需要在不同版本之间切换。安装并选择了nodev10.0.0后,可以使用npminit在任何地方创建NodeJS项目。在项目目录中,创建以下文件:温度文本:我们要读取的文件。应用程序js:我们将用于演示的节点应用程序。应用程序读取文件并将其内容截断为前4个字符。打开温度文本和类型"节点.js"把它藏起来。然后,打开应用程序js包括以下标题:// 应用程序jsconst fs=要求("fs");const fsPromises=要求("fs/承诺");fs是我们常用的模块。fs/promises将新的API引入到我们的应用程序中。接下来,云端云服务器,让我们读温度文本并在控制台中打印其当前内容:const fs=要求("fs");const fsPromises=要求("fs/承诺");控制台.log(fs.readFileSync("温度文本",大数据,"utf8");//印刷品:节点.js现在,我们将创建一个名为doTruncate的函数,该函数使用open()异步打开文件,并使用fs/promises库的两种方法ftruncate截断文件的内容。我们将通过async/await模式管理承诺,并将结果截断结果打印到控制台:const fs=要求("fs");const fsPromises=要求("fs/承诺");控制台.log(fs.readFileSync("温度文本","utf8");//印刷品:节点.js异步函数doTruncate(){const fd=等待fsPromises.open("温度文本","r+");等待fsPromises.ftruncate公司(fd,4);控制台.log(fs.readFileSync("温度文本","utf8");//打印:节点}doTruncate().catch(控制台.错误);没有回调可以使代码干净、优雅和可读。只需三行代码,我们就可以像同步一样执行doTruncate的所有逻辑。如果抛出任何错误,我们通过将catch链接到doTruncate来捕获它。不需要在函数中使用try/catch块。新的JavaScript语言功能以下是节点v10.0.0附带的V8 v6.6版本中包含的功能的亮点:Function.prototype.toString函数()此方法现在返回包含空白和注释的源文本的精确切片。函数/*这是一个注释*/f(){const num=10;控制台.log(数字);}控制台.log(f.toString());控制台输出现在包括function和f之间的注释以及f之后的空白:函数/*这是一个注释*/f(){const num=10;控制台.log(数字);}在以前的版本中节点.js,输出将是:函数f(){const num=10;控制台.log(数字);}try语句的catch子句不再需要参数。下面是发行说明中的一个示例:试试看{doSomethingThatMightThrow();}抓住{handleException();}非标准方法trimLeft()和trimRight()将成为新实现的String.prototype.trimStart()和String.prototype.trimEnd()为确保向后兼容性:const string="节点岩石!";控制台.log(字符串.trimStart());控制台.log(字符串.trimEnd());控制台.log(字符串.修剪());输出:节点岩石!节点岩石!节点岩石!在V8项目博客中阅读更多关于JavaScript语言特性变化的详细信息。性能改进承诺和异步函数可以提高性能。V8工程团队已经能够缩小异步函数和原始承诺链之间的差距。来源:V8项目博客异步生成器和异步迭代的性能得到了很大的改善。来源:V8项目博客对于多孔双阵列,Array#reduce的吞吐量性能提高了10倍以上。来源:V8项目博客请在V8项目博客中阅读有关v8v6.6中的性能改进的更多详细信息。更好的错误处理正如迈克尔·道森解释的,返利app,直到最近,节点.js只抛出了与错误相关的消息。这使得错误管理具有挑战性,而且具有讽刺意味的是,容易出错,因为您需要将错误消息字符串与已知值进行比较,以确定引发了什么类型的错误以及代码应该采取什么操作。这使得在代码库中维护错误管理变得困难,因为API抛出的错误消息的任何更改都会破坏代码。这意味着什么节点.js该团队认为,任何错误消息的更改,包括一些小的错误消息,比如打字错误,都需要排队等待发布。为了解决这个问题并使团队能够灵活地改进小版本中的错误消息,可以使用节点.js团队一直在努力为节点.js应用程序编程接口。这项工作在最新版本中继续。这项计划的完全实现不仅使开发人员的错误管理更容易,而且错误消息可以后传到以前的版本,应用程序的国际化也变得更加容易。NPM v6即将面世在路上,节点.jsv10将在其生命早期看到与npmv6的集成。NPM6优先考虑安全性、性能增强和工作流优化。NPM团队声称净现值@6将能够提供高达17倍的速度npm一年前。听起来很有前途!"在2018年10月进入LTS状态之前,节点v10将与NPM v6集成。准备好见证去年npm速度的17倍吧!"在推特上留言节点.js时间旅行这个版本还附带了Node ChakraCore的实验版本,它通过使用NodeChakra Time Travel Debug VSCode扩展来促进时间旅行创新的使用。该扩展允许开发人员从编辑器轻松地管理时间旅行。完全支持N-APIN-API本机插件API从其实验状态中毕业。但是,N-API到底是什么呢?N-API是一个允许开发人员构建本机插件的API。节点.js当JavaScript性能不够时,使用插件来提高代码库的性能。节点.js插件为我们提供了运行在节点.js和C/C++库。我们可以使用这个接口来构建C++中动态链接的共享对象,我们可以将其加载到节点.js通过require()函数应用程序。节点.js插件的行为与普通插件相同节点.js模块,免费vps服务器,但为计算要求高的应用程序提供了性能提升。通过使用插件,我们还可以与操作系统的底层api进行交互。所有这些听起来都很棒;但是,插件的实现相当复杂,需要了解节点.js包括V8、LIBUV、C++ API以及其他静态链接库,如OpenSSL。N-API提供了一个独立于底层JavaScript运行时(V8)的API来构建本机插件,从而简化了这一过程。目标是隔离插件,使其在不同版本的节点.js:为一个版本编译的模块可以在以后的版本上运行,而无需重新编译。这一切都是通过使N-API应用程序二进制接口(ABI)稳定来实现的。我们以前听过API,什么是ABI?如果API是代码模块之间的契约,那么ABI就是二进制代码片段之间的契约,正如Google工程师Robert Love所解释的:应用程序二进制接口(ABI)"定义了调用函数的机制、调用方和被调用方之间如何传递参数、如何向调用方提供返回值、库是如何进行的一个稳定的插件ABI将使依赖于本机模块的代码库升级更加容易。"对业务至关重要的本机代码依赖性是一些团队延迟升级节点的核心原因。新的N-API使此版本的迁移更加容易,而在将来的版本中则更加轻松!"在推特上留言节点插件是生态系统的一个非常先进的概念。但是,云服务器购买,如果您希望创建一些超高性能的本机模块,请毫不犹豫地查看并