当前位置: 首页 > 后端技术 > Node.js

Deno来了,Node要凉了吗?

时间:2023-04-04 01:33:32 Node.js

背??景故事最近关于Deno的讨论相当火爆,有“Deno很可能是下一个前端大事件”的说法,敬请关注。Node.js和Deno最初都是由RyanDahl编写的,他于2009年开始从事Node项目,但几年后退出了该项目。2018年,他发表了关于Node.js我后悔的10件事,并宣布创建一个全新的Deno项目。作者GitHubhttps://github.com/ryRyanDah提到了Node的十大设计错误,其中很多都是草根级的设计错误,深入理解需要专业的技巧。作为新手,我只是整理和罗列。后悔。不坚持使用Promise的结果是Node充满了async/await和promise的不同异步API设计,直到现在都极难集成。后悔没有从GYP加固系统切换到GN后悔继续使用GYP,不提供FFI后悔你可以在任何地方require("somemodule")后悔package.json提供了错误的“模块”概念后悔没有注意安全(Security)后悔设计软件世界的黑洞node_modules有时候npminstall要等很久,然后发现应用下载了一个几百mb的node_module。附上演讲视频地址:https://www.bilibili.com/video...DenoDeno是一个使用JavaScript和TypeScript编写应用程序的新平台。这两个平台共享相同的理念——事件驱动架构和异步非阻塞工具来构建网络服务器和服务。Node与Deno有何不同?这两个平台服务于相同的目的,但使用不同的机制。Deno使用ES模块作为默认模块系统,而Node.js使用CommonJS。外部依赖使用URL加载,类似于浏览器。也没有包管理器和集中注册表来托管Internet上任何地方的模块。与Node.js相反,Deno在沙箱中执行代码,这意味着运行时无法访问网络、文件系统和环境。需要明确授予访问权限,这意味着更好的安全性。Deno开箱即用地支持TypeScript,这意味着我们不需要手动安装和配置工具来编写TypeScript代码。另一个区别是Deno提供了一组内置工具,例如测试运行器、代码格式化程序和打包程序。Deno不需要npm包管理#Denoimport{serve}from"https://deno.land/std@0.53.0/http/server.ts";#Nodeconstserverrequrie('server')Deno通过URL导入代码,模块可以托管在互联网的任何地方。在没有中央注册表的情况下分发Deno包。也不需要package.json文件和依赖项列表,因为所有模块都在应用程序运行时下载、编译和缓存。Deno真的会取代node吗?KrzysztofPiechowicz:Deno的目标不是取代Node.js,而是提供一种替代方案。其中一些差异颇具争议,很难预测它们是否会以正确的方式格式化。我推荐所有Node.js程序员关注这个项目。我不确定这个项目是否会成功,但这是一个很好的机会来了解Node.js是如何以不同方式实现的。演讲视频地址:https://www.bilibili.com/vide...尝试附录资源官网:https://deno.land源码:https://github.com/denoland/deno#安装curl——fsSLhttps://deno.land/x/install/install.sh|sh#运行Demodenorunhttps://deno.land/std/examples/welcome.tsexampleimport{serve}from"https://deno.land/std@0.53.0/http/server.ts";consts=serve({port:8000});console.log("http://localhost:8000/");forawait(constreqofs){req.respond({body:"HelloWorld\n"});}总结Deno是否会带来改变,我们拭目以待!!