Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/77.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js 设置临时变量并在pug模板中进一步重用它_Node.js_Express_Pug - Fatal编程技术网

Node.js 设置临时变量并在pug模板中进一步重用它

Node.js 设置临时变量并在pug模板中进一步重用它,node.js,express,pug,Node.js,Express,Pug,我试图将一些值从nodejs/express后端传递到模板中(使用res.render({…})),将其存储在一些变量中,然后将其进一步传递到前端(用例是我需要对传递的值进行一些温和的计算,并将其存储在一些中间变量中) 我知道我可以在哈巴狗档案里做这件事 block append script script. const foo = parseInt(#{stat.get('fooStat')}, 10); 但后来我似乎不能在我的哈巴狗模板中引用这个,比如这里 span #{f

我试图将一些值从nodejs/express后端传递到模板中(使用res.render({…})),将其存储在一些变量中,然后将其进一步传递到前端(用例是我需要对传递的值进行一些温和的计算,并将其存储在一些中间变量中)

我知道我可以在哈巴狗档案里做这件事

block append script
  script.
    const foo = parseInt(#{stat.get('fooStat')}, 10);
但后来我似乎不能在我的哈巴狗模板中引用这个,比如这里

  span #{foo}

这个值是空的,我猜是因为它没有定义。。。实现这一点的通常方法是什么。

脚本
标记后添加句点向帕格发出信号,其内容应被视为纯文本。当您想要编写用于客户端消费的javascript时,这非常方便,但是任何声明的变量都是帕格无法访问的

script.
  const foo = 10;

span #{foo} // foo is undefined here
如果要定义一个帕格稍后可以在模板中使用的变量,请使用

-const foo=10
span{foo}//10

我建议您仔细考虑这样做,我们发现,通常最好在路由(或路由中的模型)中执行此类操作,而不是将数据逻辑推送到模板中。我不是在猜测你的需求,只是把我们一路上学到的经验传授给大家。我最终按照你的建议做了,但我仍然想解决这个问题,在这种情况下,我需要这样做。似乎在这样做时,我以后无法附加变量(此处
foo
)对于客户端JS进一步使用的windows对象(比如通过编写类似
window.localNamespace.foo=foo
)@zebullon,您只需在
脚本中执行即可。
块并使用插值将Pug变量的值呈现到客户端javascript文本中
- const foo = 10

span #{foo} // renders <span>10</span>