node.js требует наличия всех файлов в папке?

Я главным образом соглашаюсь с Ned, хотя у меня есть единственная установка под названием IS_LIVE_SITE, который переключает код аналитики, объявления и несколько других вещей. Таким образом, я могу сохранить все ключи в подрывной деятельности (поскольку это - боль для поиска их), и все еще переключите их на или прочь легко.

312
задан Harry 19 March 2011 в 12:59
поделиться

1 ответ

Подробно останавливаясь это glob решение. Сделайте это, если Вы хотите импортировать все модули из каталога в index.js и затем импортировать это index.js в другой части приложения. Обратите внимание, что шаблонные литералы не поддерживаются выделяющимся механизмом, используемым stackoverflow, таким образом, код мог бы выглядеть странным здесь.

const glob = require("glob");

let allOfThem = {};
glob.sync(`${__dirname}/*.js`).forEach((file) => {
  /* see note about this in example below */
  allOfThem = { ...allOfThem, ...require(file) };
});
module.exports = allOfThem;

Полный Пример

Структура каталогов

globExample/example.js
globExample/foobars/index.js
globExample/foobars/unexpected.js
globExample/foobars/barit.js
globExample/foobars/fooit.js

globExample/example.js

const { foo, bar, keepit } = require('./foobars/index');
const longStyle = require('./foobars/index');

console.log(foo()); // foo ran
console.log(bar()); // bar ran
console.log(keepit()); // keepit ran unexpected

console.log(longStyle.foo()); // foo ran
console.log(longStyle.bar()); // bar ran
console.log(longStyle.keepit()); // keepit ran unexpected

globExample/foobars/index.js

const glob = require("glob");
/*
Note the following style also works with multiple exports per file (barit.js example)
but will overwrite if you have 2 exports with the same
name (unexpected.js and barit.js have a keepit function) in the files being imported. As a result, this method is best used when
your exporting one module per file and use the filename to easily identify what is in it.

Also Note: This ignores itself (index.js) by default to prevent infinite loop.
*/

let allOfThem = {};
glob.sync(`${__dirname}/*.js`).forEach((file) => {
  allOfThem = { ...allOfThem, ...require(file) };
});

module.exports = allOfThem;

globExample/foobars/unexpected.js

exports.keepit = () => 'keepit ran unexpected';

globExample/foobars/barit.js

exports.bar = () => 'bar run';

exports.keepit = () => 'keepit ran';

globExample/foobars/fooit.js

exports.foo = () => 'foo ran';

Из проекта с [1 111] установил , работайте node example.js

$ node example.js
foo ran
bar run
keepit ran unexpected
foo ran
bar run
keepit ran unexpected
0
ответ дан 23 November 2019 в 01:10
поделиться
Другие вопросы по тегам:

Похожие вопросы: