【问题标题】:trouble passing variables to jade using coffeescript and express.js使用 coffeescript 和 express.js 将变量传递给玉的麻烦
【发布时间】:2012-07-02 22:08:29
【问题描述】:

我是 node 和 express 的新手,我在使用 jam 作为模板语言的应用程序的前端工作。有些事情我仍然无法解决问题,并且在这里进行详尽的谷歌搜索和搜索还没有找到答案。

我的应用结构:

    myapp/
    | - app.coffee
    | - config.coffee
    | - assets/ 
            | - scripts
                    my coffeescript files   (test.coffee)           
            | - stylesheets
                    my sass files
    | - public/ 
            | - images
            | - scripts
                    my coffeescript compiled as js (test.js)
            | - css
                    my sass files compiled as css
    | - views/ 
            | - jade files, layouts, partials etc

如果我在 app.coffee 中定义变量,目前我可以将变量传递给玉,例如,如果我这样做:

    app.get '/', (req, res) ->
      res.render 'landing',
        testvar: 'a test string'

那么我可以说:

    p #{testvar}

进入landing.jade,它会呈现为:

    <p>a test string</p>

这一切都很好。但是,如果我想在位于资产中的其他咖啡脚本文件之一中定义一个变量或对象,然后让它由玉渲染呢?解决此问题的最佳方法是什么?这可能吗?我已经研究过 express-expose,但似乎这不是我想要的,或者我没有正确理解它。

我要避免的是用一堆对象/变量弄脏我的 app.coffee 文件,我宁愿在我的资产咖啡文件中定义它们,然后在我用 app.coffee 定义路由时将它们包含在内。得到。值得一提的是,编译后的coffee文件包含在我页面顶部的layout.jade文件中,使用了一个经典的脚本标签:

    script(src='scripts/test.js')

【问题讨论】:

  • 同样的问题。我正在尝试将变量添加到myfile.cofeee。你找到解决办法了吗?

标签: javascript node.js express pug


【解决方案1】:
app.locals.use (req, res) ->
  res.locals.script = (s) ->
    "<script type=\"text/javascript\" src=\"#{s}\"></script>"

【讨论】:

  • 我不明白这个答案...这有什么帮助?
猜你喜欢
  • 2011-09-30
  • 1970-01-01
  • 2015-08-24
  • 2016-12-05
  • 2018-11-07
  • 1970-01-01
  • 2013-09-05
  • 2016-01-29
  • 1970-01-01
相关资源
最近更新 更多