sto cercando di esportare una classe ES6 da un modulo CommonJS in Node.js 6.2.0Node.js ES6 come esportare la classe dal modulo?
class MyClass{
//class contents here
}
exports = MyClass;
Quindi importare in un altro modulo:
var MyClass = require('/path/to/module.js')
var instance = new MyClass();
Comunque io sto ottenendo il seguente eccezione:
TypeError: MyClass is not a constructor
Come posso farlo correttamente?
Si noti che non sto utilizzando Babel/Tranceur è puro JS implementato nell'ultimo Nodo 6.2.0 che secondo Kangax implementa ES6 nel 93%.
// Modifica: questo non è un problema con esportazioni vs module.exports. Durante l'utilizzo delle sole esportazioni, ottengo qualche oggetto con il set __proto__
.
Prova a registrare ciò che ottieni dopo aver richiesto il modulo. _Se non è un costruttore, che cos'è? _ – sdgluck
* "questo non è un problema con esportazioni vs module.exports" * Sì lo è! 'exports = MyClass;' non esporta nulla. È un noop. 'module.exports = ...;' è il modo per esportare un singolo valore da un modulo. Il duplicato spiega perché 'exports = ...;' non funziona. –
Dovresti contrassegnare @Bergi come corretta (facendo clic sul pulsante grigio 'ceck' sul lato sinistro della risposta) –