节点coffeescript类文件和inheritance

我有2个类文件:

foo.coffee:class class Foo

bar.coffee:class class Bar extends Foo

我如何定义这些类,使它们在全球范围内可用? 我得到Bar中的错误, Foo没有定义。

我有一个index.js文件,我调用node来运行脚本。 这里是index.js的内容,我很可能也做了这个错误:

 exports.Foo = require("./foo") exports.Bar = require("/bar") 

       

网上收集的解决方案 "节点coffeescript类文件和inheritance"

foo.coffee:

 class Foo // ... module.exports = Foo 

bar.coffee:

 Foo = require "./foo" class Bar extends Foo // ... module.exports = Bar 

index.coffee:

 exports.Foo = require "./foo" exports.Bar = require "./bar" 

更新:你也需要用coffee运行.coffee文件,除非你先编译它们。

更新2:你如何构build你的模型取决于你。 我喜欢上面的模式(简单的模块只导出一个函数 – 这是当你需要分配给module.exports因为你不能简单地分配给exports ),但其他人喜欢这样的结构:

foo.coffee:

 class Foo // ... exports.Foo = Foo 

bar.coffee:

 Foo = require("./foo").Foo class Bar extends Foo // ... exports.Bar = Bar 

index.coffee:

 exports.Foo = require("./foo").Foo exports.Bar = require("./bar").Bar 

每个模块在哪里输出具有一个或多个属性的对象。

你也可以写:

 class @MyClass [...] {MyClassName} = require './myclassFile' myClass = new MyClassName