Coffeescript中连接/快速模块的最佳实践?

问题描述:

我正在使用CoffeeScript编写Express.js模块,我不确定构建它们的最佳方法。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'只是一个Node模块;它与Connect/Express无关。 – 2011-12-20 22:53:40

+0

对于它的价值,CoffeeScript为您的构造函数提供了一些糖。它可以成为:构造函数:(@options) - > – 2011-12-21 14:58:40

是的,你的方法很好。从Node库导出构造函数是很常见的。

您唯一要担心的就是直接导出Mailer类,直到它可以是require d。您可以通过添加行

module.exports = Mailer 

定义类之后。

+0

Doh,是的,我错过了我的代码示例中的那一点。编辑我的问题来解决它。 – 2011-12-20 23:36:58