У нас есть виджет Node.js, который экспортируется так:
module.exports = ourWidget;
Затем я импортирую его в наш server.js следующим образом:
var ourWidget = require('./ourWidget');
var ow = new ourWidget;
Это работает так, как ожидалось, но можно ли это сделать в одной строке? НАПРИМЕР:
var ow = new (require('./ourWidget'));
Что не работает, я также пробовал это:
var ow = new (require('./ourWidget')());
Оба они напоминают код в этом SO-вопросе: как требуется работать с новым оператором в node.js? , но оба не работают, как только я пытаюсь запустить код.
Вы можете добиться этого, переместив вызов функции на внешнюю сторону оберточных папок:
var ow = new (require('./ourWidget'))()
Но имейте в виду, что теперь у вас нет доступа к исходному конструктору виджета (это может быть или не быть плохой в вашем случае).
var ow = new (require('./ourWidget'))
который уже использовал OP