0

我正在公开(出于测试目的)一个对象和一个命名函数:

var express = require('express')
  , expose  = require('express-expose')
  , app     = express();

// ...

// Expose with 'utils' namespace, default 'javascript' buffer
app.expose({ foo: 'bar' }, 'utils');

// Expose named function with 'funcs' buffer
app.expose(function foo() { return 'bar'; }, 'funcs');

JavaScript 变量创建得很好:

doctype 5
html(lang="en")
    head
        meta(charset='utf-8')
        title
        // Buffer 'javascript'
        script!= javascript
        // Buffer 'funcs'
        script!= funcs
    body

输出:

<!-- Buffer 'javascript'-->
<script>
    window.utils = window.utils || {};
    utils["foo"] = "bar";
</script>
<!-- Buffer 'funcs'-->
<script>
    function foo() { return 'bar'; }
</script>

但我想同时访问对象{ foo: 'bar' }function foo() { return 'bar'; }从 Jade 内部。根据express.expose两者都可以在 Jade... 但是在哪里?

4

1 回答 1

2

您可以通过将本地人添加到 app.locals 来将本地人添加到您的翡翠模板应用程序范围内。

app.locals.foo = function foo() { return 'bar'; }
于 2013-05-27T08:16:16.400 回答