Метод zappa js @include coffeescript не работает

Я хочу иметь возможность вызывать функции coffeescript и js, объявленные в других файлах, из приложения zappa. Я вообще не могу заставить его работать.

Я попытался использовать @include, как описано в crashcourse zappajs...

но я получаю

TypeError: объект # не имеет метода «включить»

Вот код моего тестового приложения:

#app.coffee
require('zappajs') ->
    @get '/': -> @include 'call'

и вот функция, которую я пытаюсь вызвать в другом файле.

#call.coffee
@include = ->
    "call me"

person stukennedy    schedule 01.03.2013    source источник


Ответы (3)


Ничего не проверял, но похоже, что вы смешиваете здесь несколько вещей. Я могу ошибаться, но вам, вероятно, следует либо просто использовать require node.js-стиль require, ЛИБО вы можете использовать zappa стиль @include, но смешивать их, вероятно, не очень хорошая идея, пока вы действительно не поймете, что делает @include.

Краш-курс zappa, на который вы ссылаетесь, показывает как определение модулей, так и их использование, но в обоих случаях это делается с использованием @include. Основываясь на том, что вы пишете, я считаю, что вы не можете смешивать require и @include так, как вы пытаетесь это сделать.

person Marius Kjeldahl    schedule 01.03.2013

пытаться:

#app.coffee
require('zappajs').run port, host,  ->
  @include './routes'

#routes.coffee
@include = ->
  @get '/': ->
    @render 'index.jade',
      foo:'bar'
person malix    schedule 20.03.2013

Мариус прав, я перепутал require и @include... Я могу заставить это работать, что я и хотел сделать (т.е. вызвать функцию в другом файле)

require('zappajs') -> 
  test = require('./test') 
  @get '/': -> test.test(@response)

с файлом с именем test.coffee, который выглядит так

@test = (res) -> 
  res.send 'hullo' 
person stukennedy    schedule 02.03.2013