刚开始使用Node.js,我正在使用Geddy框架(我喜欢与Rails的相似性)。但是我在使用CoffeeScript正常工作时遇到了一些麻烦。我看到Geddy is now "supporting" coffee files。但是,当我开始将默认的js转换为咖啡时,我得到错误:
/usr/local/lib/node_modules/geddy/lib/app.js:108
ctor.origPrototype = ctor.prototype;
^
TypeError: Cannot read property 'prototype' of undefined
at _registerControllers (/usr/local/lib/node_modules/geddy/lib/app.js:108:36)
at async.AsyncBase.runItem (/usr/local/lib/node_modules/geddy/node_modules/utilities/lib/async.js:108:10)
at async.AsyncBase.next (/usr/local/lib/node_modules/geddy/node_modules/utilities/lib/async.js:113:12)
at async.AsyncBase.execCallback (/usr/local/lib/node_modules/geddy/node_modules/utilities/lib/async.js:148:54)
at process.startup.processNextTick.process._tickCallback (node.js:244:9)
我安装了CoffeeScript,但我真的不知道我应该在这里做什么。关于此的文档几乎不存在。
知道我在这里缺少什么吗?
答案 0 :(得分:0)
看看geddy-coffee-templates。您可以从coffeescript创建一个新的基础应用程序。添加模型和控制器现在正在工作,但脚手架和资源生成器目前不工作。
对于现有应用,只需在coffee-script
文件上添加package.json
依赖项即可。 (Example)。然后是npm install
。
答案 1 :(得分:0)
这个问题可能有点旧,但我遇到了这个问题。
就我而言,我所做的只是添加了一个名为fruits.js的控制器文件,但在我的fruits.js中我将其定义为:
var Fruit = function () {
...
};
exports.Fruit = Fruit;
问题在于文件命名和实际变量名称不匹配。
就我而言,简单的解决方法是:
either rename "Fruit" to "Fruits"
或
change the file name from "fruits.js" to "fruit.js"
因此,吸取的教训是Geddy希望控制器文件名与文件中的实际变量定义相匹配。
希望你遇到同样的问题。