@[TOC]💓 博客主页:瑕疵的CSDN主页
📝 Gitee主页:瑕疵的gitee主页
⏩ 文章专栏:《热点资讯》
引言
Deno 是一个现代的、安全的、基于 V8 引擎的 JavaScript 和 TypeScript 运行时,由 Node.js 的作者 Ryan Dahl 创建。Deno 设计之初就考虑到了安全性、易用性和现代开发需求。本文将详细介绍如何使用 Deno 进行现代 Web 开发,包括安装、配置、编写基本应用、使用标准库和第三方模块等内容。
Deno 简介
Deno 是一个全新的 JavaScript 和 TypeScript 运行时,旨在解决 Node.js 存在的一些问题。Deno 的主要特点包括:
- 安全性:默认禁止文件系统、网络和环境访问,需要显式授权。
- 内置支持 TypeScript:无需额外配置即可直接运行 TypeScript 代码。
- 标准库:提供丰富的标准库,涵盖常见的开发需求。
- 模块化:使用 ES 模块系统,支持远程模块。
- CLI 工具:提供强大的命令行工具,支持代码格式化、测试和依赖管理。
安装 Deno
在使用 Deno 之前,需要安装 Deno。Deno 提供了多种安装方式,这里以 macOS 为例:
# 使用 Homebrew 安装
brew install deno# 或者使用 curl 安装
curl -fsSL https://deno.land/x/install/install.sh | sh
创建基本应用
在项目根目录下创建一个 main.ts
文件,编写一个简单的 HTTP 服务器:
// main.ts
import { serve } from "https://deno.land/std@0.131.0/http/server.ts";console.log("Starting server on http://localhost:8000");const handler = (req: Request): Response => {return new Response("Hello, Deno!", { status: 200 });
};serve(handler);
运行应用
使用以下命令运行应用:
deno run --allow-net main.ts
这将启动一个监听 8000 端口的 HTTP 服务器。
使用标准库
Deno 提供了丰富的标准库,涵盖了文件系统操作、HTTP 服务、加密等常见需求。例如,读取文件内容:
// read-file.ts
import { readTextFile } from "https://deno.land/std@0.131.0/fs/read_file.ts";async function readFile() {const content = await readTextFile("./example.txt");console.log(content);
}readFile().catch(console.error);
运行上述脚本:
deno run --allow-read read-file.ts
使用第三方模块
Deno 支持从远程 URL 导入第三方模块。例如,使用 oak
框架创建一个更复杂的 HTTP 服务器:
// oak-server.ts
import { Application, Router } from "https://deno.land/x/oak/mod.ts";const app = new Application();
const router = new Router();router.get("/", (ctx) => {ctx.response.body = "Hello, Oak!";}).get("/about", (ctx) => {ctx.response.body = "About page";});app.use(router.routes());
app.use(router.allowedMethods());console.log("Starting server on http://localhost:8000");
await app.listen({ port: 8000 });
运行上述脚本:
deno run --allow-net oak-server.ts
代码格式化和 linting
Deno 提供了内置的代码格式化和 linting 工具。例如,格式化代码:
deno fmt
运行 lint 检查:
deno lint
测试
Deno 支持编写和运行测试用例。例如,编写一个简单的测试:
// sum.test.ts
import { assertEquals } from "https://deno.land/std@0.131.0/testing/asserts.ts";function sum(a: number, b: number): number {return a + b;
}Deno.test("sum should add two numbers", () => {assertEquals(sum(1, 2), 3);
});
运行测试:
deno test
实际案例
Deno 已经被广泛应用于各种现代 Web 开发场景,例如:
- API 服务:构建高性能的 API 服务,处理大量请求。
- Web 应用:构建全栈 Web 应用,前后端使用相同的语言和技术栈。
- CLI 工具:开发命令行工具,提供丰富的功能和良好的用户体验。
总结
通过本文,你已经学会了如何使用 Deno 进行现代 Web 开发。Deno 的安全性、易用性和现代特性使其成为现代 Web 开发的理想选择。
Deno 支持 ES 模块系统和远程模块,可以更好地管理和组织代码。