Я пытаюсь создать один модуль, содержащий несколько функций.
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);
У меня проблема в том, что firstParam
это тип объекта, а secondParam
это строка URL, но когда у меня есть, он всегда жалуется, что тип неправильный.
Как я могу объявить несколько module.exports в этом случае?
Ответы:
Вы можете сделать что-то вроде:
Или просто:
Затем в вызывающем скрипте:
источник
module.exports = {}
а неmodule.method = ...
. stackoverflow.com/a/26451885/155740module.method
здесь нигде ... толькоexports.method
, что является просто ссылкойmodule.exports.method
, поэтому ведет себя так же. Разница лишь в том, что мы не определилиmodule.exports
, поэтому по умолчанию{}
, если я не ошибаюсь.var otherMethod = require('module.js')(otherMethod);
? То есть, было бы, что линия требуетotherMethod
функции так же , как если бы она была единственной функции на странице и экспорт был:module.exports = secondMethod;
?var otherMethod = require('module.js').otherMethod
.Чтобы экспортировать несколько функций, вы можете просто перечислить их следующим образом:
А затем для доступа к ним в другом файле:
И тогда вы можете вызвать каждую функцию, вызвав:
источник
require("./lib/file.js")
? Мне нужно использоватьrequire("../../lib/file.js")
, иначе это не сработает.const { function1, function2, function3 } = require("./lib/file.js")
что позволяет вам звонить им напрямую (например,function1
вместоmyFunctions.function1
)в дополнение к ответу @mash я рекомендую всегда делать следующее:
Обратите внимание здесь:
method
с,otherMethod
и вам это понадобится многоВы также можете использовать ту же технику для импорта:
const {otherMethod} = require('./myModule.js');
источник
Это только для моей справки, поскольку то, что я пытался достичь, может быть достигнуто этим.
в
module.js
Мы можем сделать что-то вроде этого
в
main.js
источник
module.js:
main.js:
источник
Если файлы написаны с использованием экспорта ES6, вы можете написать:
источник
Один из способов сделать это - создать новый объект в модуле вместо его замены.
например:
и позвонить
источник
Вы можете написать функцию, которая вручную делегирует другие функции:
источник
использовать это
источник
Два типа модуля импорта и экспорта.
Тип 1 (module.js):
Тип 1 (main.js):
тип 2 (module.js):
Тип 2 (main.js):
Как использовать модуль импорта?
источник
также вы можете экспортировать это так
или для анонимных функций, как это
источник
module1.js:
main.js
источник
Есть несколько способов сделать это, один из них упомянут ниже. Просто предположите, что у вас есть файл .js, как этот.
Вы можете экспортировать эти функции, используя следующий фрагмент кода,
И вы можете использовать экспортированные функции, используя этот фрагмент кода,
Я знаю, что это поздний ответ, но надеюсь, что это поможет!
источник
источник
Если вы объявляете класс в файле модуля вместо простого объекта
Файл: UserModule.js
Основной файл: index.js
источник
Вы можете использовать этот подход тоже
или
источник
Добавление сюда для кого-то, чтобы помочь:
этот блок кода поможет добавить несколько плагинов в cypress index.js Плагины -> cypress-ntlm-auth и выбор файла кипариса env
источник