使用CoffeeScript支持设置Node.js / Geddy应用程序

时间:2013-03-01 04:57:50

标签: javascript node.js coffeescript geddy

刚开始使用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,但我真的不知道我应该在这里做什么。关于此的文档几乎不存在。

知道我在这里缺少什么吗?

2 个答案:

答案 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希望控制器文件名与文件中的实际变量定义相匹配。

希望你遇到同样的问题。