快速上手 deno!node.js 已死?
目录
deno v1.0.0 发布了。deno 一个基于 V8 的 Javascript 和 Typescript 运行时,由 node.js 的创建者 Ryan Dahl 创建。
众所周知,Ryan Dahl 一直对创建 node.js 时犯下的一些错误耿耿于怀。
所以他找到了一种方法来解决这些错误,没错,就是创建 deno 来代替 node.js 广泛用于生产环境。Node 具有社区支持,并且更加成熟。
deno 的主要特性如下:
- 设计安全,除非明确允许,否则 deno 不能访问网络或文件系统
- Promise
- 没有 npm, deno 使用 URL 或文件路径来引入模块,与浏览器端高度相似
- 原生支持 TypeScript
更多详细信息,请访问官网
如何安装 deno?
Mac 用户,可以使用 brew 安装:
brew install deno
Shell 用户可以使用:
curl -fsSL https://deno.land/x/install/install.sh | SH
Windows 用户可以使用 PowerShell:
iwr https://deno.land/x/install/install.ps1 -useb | iex
更多安装方式请参考 github
Hello World 来了
import { serve } from "https://deno.land/std@0.50.0/http/server.ts"; const s = serve({ port: 8080 }); console.log("First deno example! Running on http://localhost:8080/"); for await (const req of s) { req.respond({ body: "Hello World\n" }); }
将以上代码另存为 Example.ts,然后运行
deno run Example.ts
你可能会看到一些类似于下面这些代码的报错信息
Download https://deno.land/std@0.50.0/textproto/mod.ts Download https://deno.land/std@0.50.0/http/http_status.ts Download https://deno.land/std@0.50.0/bytes/mod.ts error: Uncaught PermissionDenied: network access to "0.0.0.0:8000", run again with the --allow-net flag at unwrapResponse ($deno$/ops/dispatch_json.ts:43:11) at Object.sendSync ($deno$/ops/dispatch_json.ts:72:10) at Object.listen ($deno$/ops/net.ts:51:10) at listen ($deno$/net.ts:152:22) at serve (https://deno.land/std@0.50.0/http/server.ts:261:20)
这是 deno 的特性之一,需要网络授权
deno run --allow-net Example.ts
接下来控制台就会输出日志:
First deno example! Running on http://localhost:8080/
node.js 死了吗?
这么说还为时尚早。尽管 deno 比 node.js 更加干净和设计良好,但是 node.js 目前被广泛用于生产环境,并且有社区的支持,更加地成熟。
时间会证一切!
作者:Nurettin Onur YAKIT
译者:尼古拉斯
原文链接:点击这里
译文内容来源 JavaScript 公众号
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。
码云笔记 » 快速上手 deno!node.js 已死?
码云笔记 » 快速上手 deno!node.js 已死?