的五个原因。人们最初的反应可能是:“太好了,另一个Javascript框架?正是我需要的。”我也有过同样的反应。了解了它的优势之后,笔者更加清楚为什么Deno正是后端Javascript开发者所需要的。让我们来看看JavaScript开发人员使用Deno体验比Node更流畅、更现代的体验的前五个原因。1.ModernJavascript—ESmodule如果你也是React开发者,你应该注意到在使用NodeJS时导入包的语法是不一样的。这是因为Node是2009年开发的,从那时起,对Javascript进行了大量的更新和改进。在React(和Deno)中,使用现代importpackagefrom'package'语句,而在Node中,使用constpackage=require("package")语句。ES模块导入的优越性源于两个方面:通过导入,可以选择性地从包中加载需要的片段,可以节省内存。加载与require同步,而import异步加载模块,提高了性能。2.顶级await——在异步函数之外使用await在Node中,只能在异步函数内部访问await关键字。但在Deno中,无论在什么地方,面对什么对象,都可以使用await,无需将其封装为异步函数。几乎所有的Javascript应用程序都包含许多异步函数。此升级使代码更干净、更简单。3.去中心化包图源:unsplash有Deno,所以不用依赖npm。我们不再需要package.json,每个包都是从URL加载的。在NodeJS中,要使用一个包,必须首先从NPM安装它:npmimoment等待安装,然后将它包含在应用程序中:constmoment=require("moment")另外,每当有人想在本地运行NodeJS库时,它是从NPM安装所有依赖项所必需的。在Deno中,包是从URL导入的,所以如果你想使用moment,只需导入URL:https://deno.land/x/moment/moment.ts。在包方面,Deno还有一个巨大的优势,就是每个包在安装后都会缓存在硬盘上,这意味着一个包的安装只会发生一次。如果你想在任何地方再次导入依赖项,你不需要再次下载它们。4.TypeScript原生运行,无需配置。让TypeScript与NodeJS一起工作需要多个步骤。读者必须安装typescript,升级package.json和tsconfig.json,并确保模块支持@types。在Deno中,您需要做的就是将文件扩展名保存为.ts而不是.js,并且已经内置了TypeScript编译器。5.访问浏览器API(Window、Fetch)要在Javascript中发出HTTP请求,您可以使用获取API。在NodeJS中,无法访问浏览器API,因此无法原生调用fetch函数。必须先安装包:npmnode-fetch然后导入包:constfetch=require("node-fetch")才能调用fetch函数。本地Deno可以访问该对象,这意味着读者可以直接调用fetch("https://something.com")以及浏览器API中的任何内容,而无需安装任何库。结合顶层await的优点,可以看出Deno代码比Node代码简洁了多少:2020年的Javascript代码编写方式不仅限于此,Deno还有很多其他优点,比如更安全默认并可以执行Wasm二进制文件,具有许多内置库等。资料来源:unsplash文章中提到的要点都是相互关联的,共同构成了一个更现代的2020后端JavaScript运行时。作为一名React开发者,我更喜欢Deno。现在我可以使用import语句,无处不在等待,无需任何配置即可使用TypeScript,甚至无需安装包即可调用fetch。一切都很简单。另一个问题是,Deno最终会取代Node吗?也许吧,但这可能需要几年时间。NodeJS生态系统非常庞大,Deno需要时间才能赶上。但趋势是Deno越来越受欢迎,如果你正在开始一个新项目,试试吧。
