引入模块
在 Deno 中,使用 import
关键字来引入外部模块。这种方式使得代码更加模块化和可重用。以下是一个简单的例子:
import { log } from "https://deno.land/std@0.147.0/log/mod.ts"; log.info("Hello world!");
模块路径
在 Deno 中,模块路径可以是本地文件路径、HTTP URL 或者 HTTPS URL。本地文件路径需要以 ./
或 ../
开头,而 HTTP URL 则用于从网络加载模块。
默认导出与命名导出
模块中的函数、变量或类可以通过 export
关键字导出,以便其他模块导入。导出有两种方式:默认导出和命名导出。
默认导出:一个模块只能有一个默认导出,通常用于导出整个模块的主入口点。
// myModule.js export default function () { console.log("Default exported function"); }
命名导出:可以有多个命名导出,用于导出模块中的多个成员。
// myModule.js export function func1() { console.log("Named export 1"); } export const constant = 42;
动态导入
除了静态导入外,Deno 还支持动态导入,这使得可以在运行时根据条件导入模块。
const moduleSpecifier = "https://example.com/myModule.js"; import(moduleSpecifier).then((module) => { module.default(); });
权限管理
Deno 在设计上考虑了安全性,因此在执行代码时会要求用户明确授予所需的权限。这包括读写文件系统、访问网络等操作。
文件系统权限
要让 Deno 访问文件系统,需要显式地授予读取或写入权限。例如:
deno run --allow-read --allow-write app.js
网络权限
对于网络请求,也需要单独授权:
deno run --allow-net app.js
如果应用程序试图进行未授权的操作,Deno 将抛出错误。
环境变量
Deno 支持环境变量的使用,但与 Node.js 不同的是,它没有内置的 process.env
对象。相反,你可以使用 Deno.env.get
方法来获取特定的环境变量值。
const port = Deno.env.get("PORT") || 8000; console.log(`Listening on port ${port}`);
进程管理
虽然 Deno 主要被设计为单线程运行的环境,但它确实提供了有限的进程控制能力。这主要通过 Deno.run
函数实现,允许你启动外部程序并与其交互。
const p = Deno.run({ cmd: ["echo", "Hello World"], }); const output = await p.output(); console.log(new TextDecoder().decode(output));
这里我们启动了一个简单的 echo
命令,并捕获其输出。
总结
本章介绍了 Deno 中一些重要的接口和概念,包括模块导入、权限管理、环境变量处理以及基本的进程控制。这些基础知识是理解和构建复杂 Deno 应用程序的重要组成部分。通过掌握这些技能,开发者能够更有效地利用 Deno 的特性来创建安全、高效的 Web 前端和后端应用。
以上是关于“Deno 接口”的部分章节内容。如需更多章节或其他方面的详细信息,请告知!