节点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")
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