通过CoffeeScript支持获取Node.js / Geddy应用程序

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

任何想法,我在这里失踪?

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

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

这个问题可能有点老,但我碰到这个问题。

在我的情况下,我所做的只是添加了一个名为fruits.js的控制器文件,但在我的fruits.js中,我将其定义为:

 var Fruit = function () { ... }; exports.Fruit = Fruit; 

问题在于文件的命名和实际variables名称不匹配。

就我而言,简单的解决方法是:

 either rename "Fruit" to "Fruits" 

要么

 change the file name from "fruits.js" to "fruit.js" 

所以学到的教训是Geddy期望控制器文件名与文件内部的实际variables定义匹配。

希望你有同样的问题。