У меня есть модуль следующим образом:
class mailer() {
constructor() {
this.template = "";
this.email = "";
}
setTemplate(tplName) {
this.template = tplName;
return this;
}
sendEmail(email) {
//some stuff
}
}
module.exports = mailer;
И чтобы потреблять это, вы просто делаете:
const mailer = require('mymodule');
(new mailer()).setTemplate("foo").sendEmail('foo@bar.com');
Причина, по которой я использую класс, заключается в том, что несколько процессов могут использовать этот модуль одновременно, поэтому мне нужно, чтобы переменные были изолированы. Это работает как задумано, но я бы хотел сделать код чище, удалив, если возможно, «новую» часть. Я могу экспортировать экземпляр класса вместо того, чтобы экспортировать сам класс, но тогда Node будет кэшироваться после первого запроса, и мой код будет использовать один и тот же экземпляр каждый раз.