Javascript 在带有jade模板的Express.js中将公开对象用作值或辅助对象?
我公开(出于测试目的)一个对象和一个命名函数:Javascript 在带有jade模板的Express.js中将公开对象用作值或辅助对象?,javascript,node.js,express,pug,Javascript,Node.js,Express,Pug,我公开(出于测试目的)一个对象和一个命名函数: var express = require('express') , expose = require('express-expose') , app = express(); // ... // Expose with 'utils' namespace, default 'javascript' buffer app.expose({ foo: 'bar' }, 'utils'); // Expose named fun
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>
window.utils=window.utils | |{};
utils[“foo”]=“bar”;
函数foo(){return'bar';}
但是我想从Jade内部访问对象
{foo:'bar'}
和函数foo(){return'bar';}
。据了解,这两种产品都有翡翠。。。但是在哪里?您可以通过将局部变量添加到app.locals,将它们添加到您的jade templates应用程序范围内
app.locals.foo = function foo() { return 'bar'; }
就我而言,它们并不像字符串一样,作为适当的JS对象暴露给Jade。