Deno 是一种新型的运行时环境,它的设计目标是为了取代 Node.js。它支持 TypeScript,并且具有安全性和跨平台性。但是,由于安全性考虑,Deno 不允许简单地在应用程序中使用 Fetch API。所以在当你想要使用 Fetch 时,就会遇到一些困难。本文将会指出如何解决这个问题。
解决 Fetch 的问题
Deno 支持在 JavaScript 或 TypeScript 文件中使用标准的 DOM API,但是这些 API 仅仅被支持了在 Web Worker 中运行,而不是默认的执行上下文中。所以在默认的执行环境中使用 Fetch 是不被允许的。
为了使用 Fetch,你必须启用“--allow-net”标志。该标志表示你允许程序请求网络。但是,如果你使用了这个标志后,你仍然会遇到“TypeError: Only absolute URLs are supported”错误。这是因为在 Deno 中 Fetch API 默认不允许请求相对路径。
为了避免这个错误,我们可以使用 URL 这个对象,该对象允许拼接 URL 路径。我们可以创建一个基础的 URL,然后将它们连接起来来创建完整的 URL。
下面是一个使用 Fetch 在 Deno 中获取 JSON 数据的示例代码:
import { Buffer } from 'https://deno.land/std/node/buffer.ts' const baseUrl = new URL('https://jsonplaceholder.typicode.com') const result = await fetch(new URL('/todos/1', baseUrl).href) const data = await result.json() console.log(`Todo Title: ${data.title}`)
这个代码片段展示了如何在 Deno 中使用 Fetch API 获取 JSON 数据。首先,我们需要导入 Buffer 类来解析 API 返回的响应体。接着,我们创建一个基础的 URL,并使用 URL 对象来将路径拼接到基础 URL 上。最后,我们使用 Fetch 获取数据,解析数据,并将其打印到控制台上。
总结
Deno 是一种新型的 JavaScript 或 TypeScript 运行时环境,它是一个安全而强大的选择。然而,当你想要使用 Fetch 时,你需要了解 Deno 的安全性策略。本文提供了一个详细的示例代码,指导你如何克服 Fetch 的限制,以及如何使用 Deno 中的 Fetch。希望这篇文章能够丰富你的知识,让你更好地使用 Deno。
来源:JavaScript中文网 ,转载请注明来源 本文地址:https://www.javascriptcn.com/post/65acb06badd4f0e0ff64695a