Bonjour,

Je débute sur node.js et j'ai récemment dépasser le millier de lignes de codes dans mon fichier dans lequel est éxécuté mon code (index.js). Cependant mon code devient de plus en plus compliquer a lire et c'est pourquoi j'essayer de le séparer en plusieurs fichier .js, mon problème est que n'ayant pas trouver de tutos sur internet (ni en anglais ni en francais) je me suis essayer a une technique d'import export avec le système de module inclus dans node.js:

Ce que je fais

J'ai donc pour tester essayer de faire une commande toute simple qui lorsque l'on fait "prefix+say [message]" cela répond le [message]

//INDEX.JS//
client.on('message', message => {

  exports.message = message
  exports.prefixparam = param.prefix;

var command_say = require(repertoire du say.js)
command_say.command_say();

});

//SAY.JS//
const Discord = require("discord.js");
var message = require(repertoire de l'index.js).message;
var paramprefix = require(repertoire de l'index.js).prefixparam;

var command_say = function() {
    const msg = message.content.toLowerCase();

    if (msg.startsWith(paramprefix + "say")) {
        var msgcontent = message.content.substr(5);
        message.delete();
        message.channel.say(msgcontent);
    }

}

exports.command_say = command_say

Ce que je veux

Je voudrai donc que la commande soit éxécuté lorsque un message est envoyé dans une channel textuel discord ( client.on('message', message => {} ) et que le bot me renvoie le message que j'ai précédemment cité tout en supprimant mon ancien message..

Ce que j'obtiens

Mais malheuresement rien ne marche et le bot ne supprime pas le message et ne renvoie pas plus le message..

1 réponse


Salut,

Tu as un problème de dépendences circulaire. Chaque fichier que tu inclus, à besoin de l'autre.
Je pense pas que dans ton cas, il soit nécessaire d'avoir séparé ces deux parties là dans deux fichiers différents.

Utilise des module.exports au lieu de exports
et fait tes require(...) en haut des fichiers pour plus de lisibilité