Ce que j'essaie de réaliser, c'est de créer un module contenant plusieurs fonctions.
module.js:
module.exports = function(firstParam) { console.log("You did it"); },
module.exports = function(secondParam) { console.log("Yes you did it"); },
// This may contain more functions
main.js:
var foo = require('module.js')(firstParam);
var bar = require('module.js')(secondParam);
Le problème que j'ai, c'est que firstParam
c'est un type d'objet et secondParam
c'est une chaîne URL, mais quand je l'ai, il se plaint toujours que le type est incorrect.
Comment puis-je déclarer plusieurs modules.exports dans ce cas?
Réponses:
Vous pouvez faire quelque chose comme:
Ou juste:
Puis dans le script d'appel:
la source
module.exports = {}
et nonmodule.method = ...
. stackoverflow.com/a/26451885/155740module.method
nulle part ici ... seulementexports.method
, ce qui est juste une référence àmodule.exports.method
, se comporte donc de la même manière. La seule différence est que nous n'avons pas définimodule.exports
, donc c'est par défaut{}
, à moins que je ne me trompe.var otherMethod = require('module.js')(otherMethod);
? Autrement dit, cette ligne nécessiterait-elle laotherMethod
fonction comme si c'était la seule fonction de la page et que l'exportation avait étémodule.exports = secondMethod;
:?var otherMethod = require('module.js').otherMethod
.Pour exporter plusieurs fonctions, vous pouvez simplement les lister comme ceci:
Et puis pour y accéder dans un autre fichier:
Et puis vous pouvez appeler chaque fonction en appelant:
la source
require("./lib/file.js")
? Je dois utiliserrequire("../../lib/file.js")
, sinon cela ne fonctionnera pas.const { function1, function2, function3 } = require("./lib/file.js")
vous y accédez : ce qui vous permet de les appeler directement (par exemplefunction1
au lieu demyFunctions.function1
)en plus de @mash answer, je vous recommande de toujours faire ce qui suit:
Notez ici:
method
depuisotherMethod
et vous en aurez beaucoup besoinVous pouvez également utiliser la même technique d'importation:
const {otherMethod} = require('./myModule.js');
la source
C'est juste pour ma référence car ce que j'essayais de réaliser peut être accompli par cela.
dans le
module.js
Nous pouvons faire quelque chose comme ça
dans le
main.js
la source
module.js:
main.js:
la source
Si les fichiers sont écrits à l'aide de l'exportation ES6, vous pouvez écrire:
la source
Vous pouvez le faire en créant un nouvel objet dans le module au lieu de le remplacer.
par exemple:
et appeler
la source
Vous pouvez écrire une fonction qui délègue manuellement entre les autres fonctions:
la source
utilisez ceci
la source
Importation et exportation de modules de deux types.
type 1 (module.js):
type 1 (main.js):
type 2 (module.js):
type 2 (main.js):
Comment utiliser le module d'importation?
la source
vous pouvez également l'exporter comme ceci
ou pour des fonctions anonymes comme celle-ci
la source
module1.js:
main.js
la source
Il existe plusieurs façons de le faire, l'une d'entre elles est mentionnée ci-dessous. Supposez simplement que vous avez un fichier .js comme celui-ci.
Vous pouvez exporter ces fonctions à l'aide de l'extrait de code suivant,
Et vous pouvez utiliser les fonctions exportées à l'aide de cet extrait de code,
Je sais que c'est une réponse tardive, mais j'espère que cela vous aidera!
la source
la source
Si vous déclarez une classe dans le fichier module au lieu de l'objet simple
Fichier: UserModule.js
Fichier principal: index.js
la source
Vous pouvez également utiliser cette approche
ou
la source
Ajout ici pour quelqu'un pour aider:
ce bloc de code aidera à ajouter plusieurs plugins dans cypress index.js Plugins -> cypress-ntlm-auth et cypress env file selection
la source