在本章中,我们将深入探讨如何在 Deno 中设置和获取环境变量。环境变量是一种可以在运行时传递给应用程序的数据源,通常用于配置应用程序的行为或存储敏感信息。
环境变量简介
环境变量是一种全局的键值对数据结构,可以在操作系统级别或进程级别进行设置。它们在 Web 开发中非常有用,因为可以用来存储一些敏感信息,如数据库密码、API 密钥等,而无需将这些信息硬编码到源代码中。这样做的好处是提高了安全性,避免了将敏感信息暴露在版本控制系统中。
在 Deno 中使用环境变量
读取环境变量
在 Deno 中,可以通过 Deno.env 对象来访问环境变量。这个对象提供了几种方法来操作环境变量:
get(key: string): string | undefined: 根据提供的键名获取对应的环境变量值。has(key: string): boolean: 检查指定的键名是否存在于环境变量中。keys(): IterableIterator<string>: 返回一个迭代器,可以遍历所有的环境变量键名。values(): IterableIterator<string>: 返回一个迭代器,可以遍历所有的环境变量值。entries(): IterableIterator<[string, string]>: 返回一个迭代器,可以遍历所有的环境变量键值对。
示例代码
// www.javascriptcn.com code example
// 获取名为 "MY_VAR" 的环境变量
const myVar = Deno.env.get("MY_VAR");
if (myVar) {
console.log(`The value of MY_VAR is ${myVar}`);
} else {
console.log("MY_VAR is not set");
}
// 检查是否存在名为 "SECRET_KEY" 的环境变量
const hasSecretKey = Deno.env.has("SECRET_KEY");
console.log(`Does SECRET_KEY exist? ${hasSecretKey ? 'Yes' : 'No'}`);
// 遍历所有环境变量
for (const [key, value] of Deno.env.entries()) {
console.log(`${key}: ${value}`);
}设置环境变量
Deno 提供了一种临时设置环境变量的方法,这对于测试非常有用。你可以使用 Deno.run() 方法来创建一个新的子进程,并通过 env 参数传递环境变量。然而,需要注意的是,这种方式只会影响子进程,不会影响父进程中的环境变量。
示例代码
// www.javascriptcn.com code example
// 创建一个子进程,并为其设置环境变量
const p = Deno.run({
cmd: ["echo", "$MY_VAR"],
env: { MY_VAR: "Hello, Deno!" },
});
const output = await p.output();
console.log(new TextDecoder().decode(output));
p.close();持久化环境变量
如果你想在脚本执行期间持久化地改变环境变量,你可以修改系统级别的环境变量或者使用 .env 文件。对于 Deno 来说,由于其安全特性,默认情况下不能直接修改系统级的环境变量。因此,通常的做法是使用 .env 文件,并在启动应用之前加载这些变量。
使用 .env 文件
首先,你需要安装一个支持 .env 文件的库,例如 https://deno.land/x/dotenv。然后,在项目根目录下创建一个 .env 文件,写入需要的环境变量,如下所示:
DB_HOST=localhost DB_USER=root DB_PASS=secret
接下来,编写代码加载这些环境变量:
import { config } from "https://deno.land/x/dotenv/mod.ts";
// 加载 .env 文件
await config();
// 获取 DB_HOST 的值
const dbHost = Deno.env.get("DB_HOST");
console.log(`Database host is ${dbHost}`);以上就是关于在 Deno 中设置和获取环境变量的详细介绍。通过合理使用环境变量,可以使你的应用更加灵活和安全。希望这些信息对你有所帮助!