节点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
- TypeError:超级expression式必须为null或者一个函数,而不是用Babeljs定义的
- 如何在Node.js的模块中使用Object.create进行inheritance
- Javascript:如何获取对象的原型链构造函数名称的列表?
- 创build单节点模块以访问在coffeescript中创build的单独文件中的多个扩展类
- 节点模块和原型inheritance
- NodeJS中的模块inheritance
- 在ES6中导入和扩展一个类的最好方法
- 理解javascriptinheritance和node.js utilinheritance函数的例子
- 检查nodejs中的inheritance