我希望能够从zappa应用程序中调用在其他文件中声明的coffeescript和js函数。我根本无法工作。
我尝试使用@include,如zappajs crashcourse上所解释的那样......
但我得到
TypeError:Object#没有方法'include'
这是我的测试应用代码:
#app.coffee
require('zappajs') ->
@get '/': -> @include 'call'
这是我试图在另一个文件中调用的函数。
#call.coffee
@include = ->
"call me"
答案 0 :(得分:1)
没有测试任何东西,但看起来你在这里混淆了一些东西。我可能错了,但您应该只使用require node.js
- style require
,或者您可以使用zappa
style @include
,但混合它们可能不太好直到你真正理解@include
的作用为止。
您链接到的zappa crashcourse显示了定义模块并使用它们,但两个地方都使用@include
完成。根据您所写的内容,我相信您不能按照您尝试的方式混合require
和@include
。
答案 1 :(得分:1)
尝试:
#app.coffee
require('zappajs').run port, host, ->
@include './routes'
#routes.coffee
@include = ->
@get '/': ->
@render 'index.jade',
foo:'bar'
答案 2 :(得分:0)
Marius是对的,我混合了require和@include ......我可以让它工作,这就是我想要做的事情(即在另一个文件中调用一个函数)
require('zappajs') ->
test = require('./test')
@get '/': -> test.test(@response)
使用名为test.coffee的文件,如下所示
@test = (res) ->
res.send 'hullo'