Deno 是一个现代化的 JavaScript 和 TypeScript 运行时,旨在改善和替代 Node.js。由 Node.js 的创建者 Ryan Dahl 在 2018 年推出,Deno 关注安全性、模块化和高性能等方面,旨在为开发者提供一个更好的运行环境。

Deno 的特点

  1. 安全性:Deno 默认运行在安全模式下,只有明确授予的权限才能访问文件系统、网络和环境变量。这一特性显著降低了应用程序遭受攻击的风险。

  2. TypeScript 支持:Deno 原生支持 TypeScript,无需额外配置。开发者可以直接运行 .ts 文件,Deno 会在后台进行编译。

  3. 模块系统:Deno 采用 URL 作为模块的路径,这意味着开发者可以直接从网络加载模块,不再需要 npm。Deno 也具有内置的包管理功能,开发者可以使用任何有效的 URL 加载模块。

  4. 单一可执行文件:Deno 的安装非常简单,用户只需下载一个二进制文件即可,无需安装其他依赖或包管理工具。

基本用法

下面是一些 Deno 的基础用法示例。

运行 TypeScript 文件

首先,我们需要安装 Deno(以 macOS 为例):

curl -fsSL https://deno.land/x/install/install.sh | sh

然后我们可以创建一个简单的 TypeScript 文件 hello.ts

// hello.ts
const greeting: string = "Hello, Deno!";
console.log(greeting);

通过 Deno 运行该文件:

deno run hello.ts

输出将显示:

Hello, Deno!

授予权限

假设我们想要读取一个文件的内容,Deno 会因为安全原因而拒绝访问,除非我们明确授予权限。创建一个名为 read_file.ts 的文件:

// read_file.ts
const data = await Deno.readTextFile("example.txt");
console.log(data);

在运行该文件时,我们需要使用 --allow-read 标志来授权读取文件:

deno run --allow-read read_file.ts

使用外部模块

Deno 的模块系统非常灵活。我们可以直接从 URL 加载模块。以下是一个使用第三方模块的示例:

app.ts 文件中使用 oak 这个 Koa 风格的框架:

// app.ts
import { Application } from "https://deno.land/x/oak/mod.ts";

const app = new Application();

app.use((ctx) => {
  ctx.response.body = "Hello, Deno with Oak!";
});

app.listen({ port: 8000 });
console.log("Server is running on http://localhost:8000");

运行该文件:

deno run --allow-net app.ts

然后在浏览器中访问 http://localhost:8000,你将看到 "Hello, Deno with Oak!" 的信息。

小结

Deno 提供了许多改进,帮助开发者更轻松地构建现代应用程序。它的安全性、模块化架构以及原生支持 TypeScript 的功能,使得 Deno 成为一个值得尝试的新兴运行时。尽管目前 Deno 还在发展中,但它已经显示出强大的潜力,尤其是在大型项目和复杂应用的开发中。随着社区的不断壮大和更多模块的发布,Deno 将会越来越受欢迎。

点赞(0) 打赏

微信小程序

微信扫一扫体验

微信公众账号

微信扫一扫加关注

发表
评论
返回
顶部