Home > Back-end >  Export array to another file in Node.js
Export array to another file in Node.js

Time:10-24

I am making a Discord bot using discord.js, and I'm trying to import a huge array called "replies" from a file named "names.js".

names.js

export var replies = ['various stuff'];

bot.js

import {replies} from "names.js";

This just returns me the following error message

(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: []
}

I have tried enabling the "type: module" in the packages.json file, but this just breaks my code (the require discord.js bit).

CodePudding user response:

You should use the relative path, since your file is not a node_module.

import { replies } from "./names";

edit: If you cannot use modules on your node aplication, then you need to change your code for something like this:

names.js

exports.replies =  [foo, bar]

bot.js

const { replies } = require("./names.js");

CodePudding user response:

Use Relative Path

names.js

export var replies = ['various stuff'];

bot.js

import { replies } from './names.js';

package.js

  "type": "module"

CodePudding user response:

The paths in node js are relative to the file you are writing an example:

If you are writing in main.js and you want to import a module that is in name.js, assuming it is at the same height in main you would put name from "./name.js".

The keys are put if you are not doing an export default.

Another thing you have to use when you use exports is put in the package-json:

"type": "module",

Blockquote

  • Related