javascript - 在带有 jade 模板的 Express.js 中使用公开的对象作为值或助手?

标签 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 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 中使用...但是在哪里?

最佳答案

您可以通过将本地变量添加到 app.locals 来将本地变量添加到整个 Jade 模板应用程序中。

app.locals.foo = function foo() { return 'bar'; }

关于javascript - 在带有 jade 模板的 Express.js 中使用公开的对象作为值或助手?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16745756/

相关文章:

javascript - 从元素检索文本时未定义

javascript - 使用twemoji解析 "3 letter"表情符号

javascript - 具有快进/快退功能的流式 mp3 文件 express 服务器

javascript - 找出文档准备就绪时的初始宽度(不是当前宽度)

javascript - 将选定的日期与表列或 MySQL 查询生成的日期数组进行比较

javascript - css停止图像在滚动上移动

ssl - compoundjs 同时支持 ssl 和普通的 http

node.js - 查询发送错误 : read ECONNRESET 的 Sequelize 错误

javascript - Node ,异步编程,回调 hell

javascript - 即使包含主体解析器,也会出现类型错误 : Cannot read property '_id' of undefined,