2011-12-20 2 views
0

Я пишу модули Express.js в CoffeeScript, и я не уверен, как лучше их структурировать.Лучшая практика для модулей connect/express в Coffeescript?

Я так хочу, чтобы использовать модуль что-то вроде

app.coffee

Mailer = require('./lib/mailer') 
amazon_mailer = new Mailer 
    key: "somekey" 
    secret: "somesecret" 
    type: "SES" 
... 
amazon_mailer.send(...) 

Так, в CoffeeScript, я думал о делать это таким образом:

/lib/mailer.coffee

class Mailer 
    constructor: (options) -> 
    @options = options 

    send: (...) -> 
    ... 

module.exports = Mailer 

В моем тестировании это работает, но это правильный способ сделать это? Я не смог найти хороших примеров о том, как структурировать экспресс-модули в CoffeeScript. Есть ли лучший способ сделать это?

+2

В вашем примере «Mailer» - это только модуль узла; это не имеет ничего общего с Connect/Express. –

+0

Для чего это стоит, у CoffeeScript есть сахар для вашего конструктора. Это может стать: constructor: (@options) -> –

ответ

1

Да, ваш подход в порядке. Обычно экспортировать конструктор из библиотеки узлов.

Единственное, о чем вы должны беспокоиться, это экспортировать класс Mailer таким образом, чтобы он мог непосредственно require d. Вы можете сделать это, добавив строку

module.exports = Mailer 

после определения класса.

+0

Doh, да, я пропустил этот бит в моем примере кода. Отредактировал мой вопрос, чтобы исправить это. –

Смежные вопросы