2

刚开始使用 Node.js,我正在使用 Geddy 框架(我喜欢与 Rails 的相似性)。但是我在让它与 CoffeeScript 一起正常工作时遇到了一些麻烦。我看到Geddy 现在正在“支持”咖啡文件。但是当我开始将默认的 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,但我真的不知道我还应该在这里做什么。这方面的文档几乎不存在。

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

4

2 回答 2

0

看看geddy-coffee-templates。您可以从 coffeescript 创建一个新的基础应用程序。添加模型和控制器现在可以工作,但脚手架和资源生成器目前无法正常工作。

对于现有应用程序,只需coffee-script在您的package.json文件中添加一个依赖项。(示例)。然后npm install

于 2013-03-23T18:15:13.543 回答
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 期望控制器文件名与文件中的实际变量定义相匹配。

希望你有同样的问题。

于 2013-07-26T16:00:05.260 回答