Есть ли способ создать новый объект Node из требования в одной строке?

1

У нас есть виджет 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? , но оба не работают, как только я пытаюсь запустить код.

  • 2
    « Что не работает » - почему? В чем проблема? Вы получаете какие-либо ошибки?
  • 0
    Смотрите также stackoverflow.com/q/40770665/1048572
Теги:
require

1 ответ

2
Лучший ответ

Вы можете добиться этого, переместив вызов функции на внешнюю сторону оберточных папок:

var ow = new (require('./ourWidget'))()

Но имейте в виду, что теперь у вас нет доступа к исходному конструктору виджета (это может быть или не быть плохой в вашем случае).

  • 0
    Это в значительной степени эквивалентно var ow = new (require('./ourWidget')) который уже использовал OP
  • 0
    На самом деле внесение изменений в этот синтаксис работало отлично. Спасибо!

Ещё вопросы

Сообщество Overcoder
Наверх
Меню