什么是 Deno?
Deno 是一个现代化的 JavaScript 和 TypeScript 运行时环境,由 Node.js 的创始人 Ryan Dahl 开发。Deno 相比于 Node.js 具有更好的安全性和更好的可维护性,支持 ES modules,而且不需要 NPM 管理器。
安装 Deno
Deno 可以在 Mac、Linux 和 Windows 上运行。你可以通过以下命令来安装 Deno:
$ curl -fsSL https://deno.land/x/install/install.sh | sh
或者你可以使用 Homebrew 进行安装:
$ brew install deno
安装完成之后,在终端输入以下命令来检查是否安装成功:
$ deno --version
Deno 基础
Hello World
在 Deno 中,你可以使用 JavaScript 或 TypeScript 编写代码。在本文中,我们将使用 TypeScript 作为示例。
新建一个 hello-world.ts 文件,并写入以下代码:
console.log("Hello Deno!");
然后,在终端中运行以下命令:
$ deno run hello-world.ts
你将会看到控制台输出了 "Hello Deno!"。
异步 API
异步 API 是 Deno 的核心特性之一,因为它可以提高程序的响应速度。
const data = await fetch("https://jsonplaceholder.typicode.com/todos/1").then((res) => res.json()); console.log(data);
在这个例子中,我们使用 Deno 内置的 fetch 函数获取 JSON 数据并将其解析为 JavaScript 对象。
第三方库
与 Node.js 不同,Deno 必须显式批准在代码中使用第三方库。你需要在运行代码时使用 --allow-net 和 --allow-read 等参数来授予 Deno 访问文件和网络的权限。例如:
$ deno run --allow-net --allow-read app.ts
如果你想使用类似于 npm 的包管理器来安装第三方库,Deno 提供了一个名为 deno.land/x 的包仓库。你可以使用以下命令来安装依赖:
$ deno install --allow-net --allow-read --unstable https://deno.land/x/todomvc/mod.ts
Deno + Oak
Oak 是一个基于中间件的 Web 框架,类似于 Koa。Oak 的 API 接口简单、易于理解,并且易于扩展。我们将使用 Oak 来创建一个简单的 RESTful API。以下是如何使用 Deno 和 Oak 来创建一个简单的 RESTful API:
安装 Oak
在终端中运行以下命令来安装 Oak:
$ deno install --allow-net --allow-read --unstable https://deno.land/x/oak/mod.ts
创建应用程序
创建一个名为 app.ts 的文件,并将其写为以下内容:
-- -------------------- ---- ------- ------ - ------------ ------ - ---- --------------------------------- ----- ----- - --- ----------- ------- -------------- - --- ---- ------ ----------- -------- ------- --------- -- ------- --- -------------- - --- ---- ------ ----------- ------ ------- ------ ---------- --- ----- ------ - --- --------- ------ --------- ----- -- - ----------------- - ------ ------ -- -------------- ----- -- - ----------------- - --------------------------- -- ------------------ ----- -- - -- -------------------------- - ----------------- - ------------------------- - ---- - ------------------- - ---- ----------------- - ---- ------- - -- --------------- ----- ----- -- - ----- ---- - ----- ------------------- ----- ---- - ----------- ------------------ ------ ----------------- - ----- --- ----- --- - --- -------------- ------------------------- --------------------------------- ------------------- ------- -- ------------------------ ----- ------------ ----- ---- ---
这段代码首先导入了 Application 和 Router 类,然后定义了一个 books Map,其中存储了两本书的信息。接着我们创建了一个 Router 实例并定义了三个路由。
- /:返回 "Hello Oak!"
- /books:返回 books Map 中所有的书籍信息
- /books/:id:根据 id 获取某本书的详细信息
最后我们创建了一个 Server 实例,使用中间件来处理请求和响应。如果你想确认是否运行成功,可以在终端中运行以下命令:
$ deno run --allow-net app.ts
之后就可以在浏览器中访问 http://localhost:3000 来查看 API 是否已经运行。
结论
Deno 提供了许多与 Node.js 相似的功能,但它更加安全、可维护,并且支持 ES modules。结合 Oak 框架,我们可以创建一个具有完整功能的 RESTful API 服务。如果你正在寻找一种基于 TypeScript 的现代化框架来开发 Web 应用程序,那么 Deno 是一个不错的选择。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/676e0f4f2a18d78edd8ef15f