将数组导出到 Node.js 中的另一个文件
Posted
技术标签:
【中文标题】将数组导出到 Node.js 中的另一个文件【英文标题】:Export array to another file in Node.js 【发布时间】:2021-12-09 21:26:38 【问题描述】:我正在使用 discord.js 制作一个 Discord 机器人,我正在尝试从名为“names.js”的文件中导入一个名为“replies”的巨大数组。
names.js
export var replies = ['various stuff'];
bot.js
import replies from "names.js";
这只是返回以下错误消息
(Use `node --trace-warnings ...` to show where the warning was created)
node:internal/modules/cjs/loader:936
throw err;
^
Error: Cannot find module '/home/pi/discordbot/monsieur_bot/...'
at Function.Module._resolveFilename (node:internal/modules/cjs/loader:933:15)
at Function.Module._load (node:internal/modules/cjs/loader:778:27)
at Function.executeUserEntryPoint [as runMain] (node:internal/modules/run_main:81:12)
at node:internal/main/run_main_module:17:47
code: 'MODULE_NOT_FOUND',
requireStack: []
我尝试在 packages.json 文件中启用“type: module”,但这只会破坏我的代码(需要 discord.js 位)。
【问题讨论】:
请发布您的代码。 PS你如何需要discord.js? const replies = require(filepath) 我需要 discord.js 使用 require 命令,像这样 "const Discord = require("discord.js");" 【参考方案1】:您应该使用相对路径,因为您的文件不是 node_module。
import replies from "./names";
编辑:如果您不能在您的节点应用程序上使用模块,那么您需要更改您的代码,如下所示:
names.js
exports.replies = [foo, bar]
bot.js
const replies = require("./names.js");
【讨论】:
仍然给我一个错误。 “不能在模块外使用 import 语句”。 抱歉,我在发帖时覆盖了 .js。再试一次,如编辑后的答案所示 是的,也试过了,遗憾的是还是同样的错误。 另外,如果你想使用 import,你必须在你的 package.json 中添加 "type": "module",否则它不会起作用 我编辑了答案,解释了如何在不依赖模块的情况下导入文件,尝试一下,让我知道它是否有效!【参考方案2】:使用相对路径
names.js
export var replies = ['various stuff'];
bot.js
import replies from './names.js';
package.js
"type": "module"
【讨论】:
【参考方案3】:node js中的路径是相对于你正在写的文件的例子:
如果你在 main.js 中编写并且你想导入一个在 name.js 中的模块,假设它在 main 中的高度相同,你可以输入 name from "./name.js".
如果您不进行默认导出,则放置密钥。
使用导出时必须使用的另一件事是放在 package-json 中:
"type": "module",
块引用
【讨论】:
以上是关于将数组导出到 Node.js 中的另一个文件的主要内容,如果未能解决你的问题,请参考以下文章
node.js:将文本文件读入数组。 (每一行都是数组中的一个项目。)