Deno 是一个基于 Rust 编写的 JavaScript/TypeScript 运行时,它的目标是提供一个安全稳定、易于维护的应用开发平台。Deno 的出现与 Node.js 的异步编程模型类似,但它还加入了一些新的特性,例如原生支持 ES modules,从而使它更适合用于构建实际项目。
在本文中,我们将介绍如何使用 Deno 构建一个服务器端的 API,并通过示例代码演示它的基本用法和特点。
安装 Deno
首先需要安装 Deno 运行时,可以在官网下载安装包或使用包管理工具(如 Homebrew,Scoop 等)进行安装。
$ brew install deno
安装完成后,我们可以在终端中输入 deno
命令来测试是否安装成功。如果安装成功,你将会看到以下输出:
$ deno Deno 1.12.2 exit using ctrl+d or close() >
创建服务器端 API
使用 Deno 创建一个服务器端 API 非常简单,我们使用 Deno 自带的 std/http
模块就能实现。我们可以参考以下代码来创建一个服务端:
-- -------------------- ---- ------- ------ - ----- - ---- --------------------------------------- ----- ---- - ----- ----- ------ - ------------------ ------------------- ------- -- ---------------------------- --- ----- ------ --- -- ------- - ------------- ----- ------ -------- --- -
在该代码中,我们首先导入了 std/http
模块中的 serve
函数,该函数会返回一个异步迭代器,它会在新的请求到达时产生一个 serveRequest
对象,该对象包含请求头、响应头、请求体等信息。我们通过 for-await-of
循环遍历该异步迭代器,处理每一个请求,最后通过 req.respond
方法响应请求。
运行该代码后,我们可以在浏览器中访问 http://localhost:8000/,应该会得到一个 “Hello World” 的响应。
编写路由及 API
上述示例代码只响应了根路径的请求,如果我们需要响应其他路由的请求该怎么办呢?做法很简单,只需要在循环中加入一个分支即可。
-- -------------------- ---- ------- ------ - ----- - ---- --------------------------------------- ----- ---- - ----- ----- ------ - ------------------ ------------------- ------- -- ---------------------------- --- ----- ------ --- -- ------- - -- -------- --- ---- - ------------- ----- ------ -------- --- - ---- -- -------- --- ------- - ------------- ----- ---------------- -------- ---- --------- -- --- - ---- - ------------- ----- ---- -------- --- - -
在该代码中,我们根据不同的请求路径进行分支判断,如果请求根路径,响应 “Hello World” 的消息,如果请求 /api
路径,则响应 JSON 格式的消息 { message: "API response" }
,如果请求其他路径,则响应 “Not Found” 的消息。我们可以根据实际需求拓展该路由规则。需要注意的是,由于 Deno 默认只允许访问网络连接和文件系统等需要授权许可的 API,因此运行该代码时需要加上 --allow-net
参数以授权访问网络连接。
总结
本文讲解了使用 Deno 构建服务器端 API 的方法并提供了示例代码。Deno 在异步编程、ES modules 等方面都提供了更好的支持和体验,如果你想尝试一下新的技术,可以考虑使用 Deno 进行开发。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/64658849968c7c53b0634d47