将数组导出到 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:将文本文件读入数组。 (每一行都是数组中的一个项目。)

如何将 Node.js V8 分析信息导出到 Chrome 的开发工具性能配置文件?

Node.js 组合来自多个文件的模块/导出

Node.js基础:第二篇

Webpack中的核心概念与构建流程

如何在节点 js 中使用 module.exports 导出数组?