我有2个类文件:
foo.coffee:class Foo
bar.coffee:class Bar extends Foo
如何定义这些类以使它们全局可用?我在Bar
中收到Foo
未定义的错误。
我有一个index.js文件,我调用node
来运行脚本。这是index.js的内容,我也很可能也错了:
exports.Foo = require("./foo")
exports.Bar = require("/bar")
答案 0 :(得分:19)
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 :如何构建模型取决于您自己。我喜欢上面的模式(简单模块只导出一个函数 - 当你需要分配给module.exports
时,因为你不能简单地分配给exports
),但是其他人喜欢这样的结构:< / p>
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
每个模块导出一个具有一个或多个属性的对象。
答案 1 :(得分:3)
你也可以写:
class @MyClass
[...]
{MyClassName} = require './myclassFile'
myClass = new MyClassName