如何将 JavaScript 变量存储在不同的文件中?
How do you store JavaScript variables in a different file?
我有一个包含很多变量(数字、字符串等)的 Discord 机器人项目。我现在使用 .ENV 来存储我的变量。我想改变这一点。我了解到您可以将 .ENV 用于敏感变量。例如 (Discord.js),您的机器人令牌。我试过在线搜索,但找不到正确的答案。理想情况下,我希望只有一个文件包含我的所有字符串。例如:
botcolor = #ffffff
新:
const botcolor = ./config.js
botcolor = ${botcolor}
带有字符串的不同示例(当您执行 ?ping
时)
message.channel.send("Pong!")
新:
const answer = ./config.js
message.channel.send(`${answer}`)
类似的东西。我对 JS 不是很有经验。所以我很抱歉,如果我不是很清楚。
因为我有多个机器人,所以我想要一个配置文件。我的机器人就像一个模板,我可以添加不同类型的配置,这样整个机器人(颜色、答案)就会发生变化。我的机器人在 Discord.js v12 顺便说一下,因为更新几乎意味着重写我的机器人。
那么有人有外部配置文件的解决方案吗?
由于您使用的是 Node.JS,因此您可以使用 CommonJS requires。我想在你的主 JavaScript 文件的顶部你有一个片段,类似于:
const discord = require("discord.js");
您也可以对自己的文件执行此操作!
考虑这个基本文件设置:
- config.js
- index.js <-- entry file
在 config.js
中,您导出数据供另一个文件使用。我们可以这样做:
module.exports = {
answer: "blah blah blah",
botColor: "#fff",
};
您可以导出任何内容,但最常见的是函数或对象(我们刚刚做了)。现在我们可以像这样使用配置文件:
// index.js
const config = require("./config");
在文件前添加 ./
很重要,否则 Node 会尝试从 /node_modules
导入。然后在你导入它之后你就可以像一个对象一样使用它了:
message.channel.send(config.answer); // <-- "blah blah blah"
您可以导出多个对象:
// config.js
exports.bot = {
answer: "blah blah blah"
};
exports.colors = {
main: "#fff"
};
然后你像这样使用它:
// index.js
const config = require("./config");
const answer = config.bot.answer;
或解构:
// index.js
const { bot, colors } = require("./config");
bot.answer; // <-- "blah blah blah"
colors.main // <-- "#fff"
注意:你也可以做require("./config.js")
,但我发现没有.js
的语法更容易理解。您还可以要求 json
个文件作为对象。
我有一个包含很多变量(数字、字符串等)的 Discord 机器人项目。我现在使用 .ENV 来存储我的变量。我想改变这一点。我了解到您可以将 .ENV 用于敏感变量。例如 (Discord.js),您的机器人令牌。我试过在线搜索,但找不到正确的答案。理想情况下,我希望只有一个文件包含我的所有字符串。例如:
botcolor = #ffffff
新:
const botcolor = ./config.js
botcolor = ${botcolor}
带有字符串的不同示例(当您执行 ?ping
时)
message.channel.send("Pong!")
新:
const answer = ./config.js
message.channel.send(`${answer}`)
类似的东西。我对 JS 不是很有经验。所以我很抱歉,如果我不是很清楚。 因为我有多个机器人,所以我想要一个配置文件。我的机器人就像一个模板,我可以添加不同类型的配置,这样整个机器人(颜色、答案)就会发生变化。我的机器人在 Discord.js v12 顺便说一下,因为更新几乎意味着重写我的机器人。
那么有人有外部配置文件的解决方案吗?
由于您使用的是 Node.JS,因此您可以使用 CommonJS requires。我想在你的主 JavaScript 文件的顶部你有一个片段,类似于:
const discord = require("discord.js");
您也可以对自己的文件执行此操作!
考虑这个基本文件设置:
- config.js
- index.js <-- entry file
在 config.js
中,您导出数据供另一个文件使用。我们可以这样做:
module.exports = {
answer: "blah blah blah",
botColor: "#fff",
};
您可以导出任何内容,但最常见的是函数或对象(我们刚刚做了)。现在我们可以像这样使用配置文件:
// index.js
const config = require("./config");
在文件前添加 ./
很重要,否则 Node 会尝试从 /node_modules
导入。然后在你导入它之后你就可以像一个对象一样使用它了:
message.channel.send(config.answer); // <-- "blah blah blah"
您可以导出多个对象:
// config.js
exports.bot = {
answer: "blah blah blah"
};
exports.colors = {
main: "#fff"
};
然后你像这样使用它:
// index.js
const config = require("./config");
const answer = config.bot.answer;
或解构:
// index.js
const { bot, colors } = require("./config");
bot.answer; // <-- "blah blah blah"
colors.main // <-- "#fff"
注意:你也可以做require("./config.js")
,但我发现没有.js
的语法更容易理解。您还可以要求 json
个文件作为对象。