gpt4 book ai didi

javascript - 链接 JavaScript 文件的 Pug 字符串插值

转载 作者:太空宇宙 更新时间:2023-11-04 00:09:50 26 4
gpt4 key购买 nike

我正在尝试做什么

我有一个 NodeJS Web 服务器,它使用 Express 提供 HTML 和 JavaScript 文件。和 Pug 。它看起来像这样:

index.pug

html
head
title Hello
body
h1 Hello World!
script(src='script.js')

app.js

const express = require('express');
var app = express();
app.set('view engine', 'pug');

app.get("/", (req, res) => {
res.render("index", {
age: 91,
name: 'George P. Burdell'
});
});
app.listen(8080);

脚本.js

var person = {
age: #{age},
name: #{name}
};

(取自并添加到 GitHub example )

我希望能够将 #{age}#{name} 占位符与 res.render()< 中指示的值交换 函数(即 {age: 91, name: 'George P. Burdell'})。

问题

截至目前,这些值尚未交换,控制台会发出错误,指示带有占位符 #{age}#{name} 的行未交换认可。仅当 script.js 中的 JavaScript 代码作为内部脚本引入 .pug 文件时,占位符值才会交换,如下所示:

index.pug

html
head
title Hello
body
h1 Hello World!
script.
var person = {
age: #{age},
name: #{name}
};

但是我想要做的是直接从外部脚本文件交换值,例如在初始设置中。除了将代码“活”在 .pug 文件中之外,我没有找到一种简单的方法来做到这一点。

最佳答案

所以我有一个解决方法。您可以做的是在 .pug 文件的内部脚本标记中设置全局变量,然后可以使用 pug 对其进行插值。作为视觉效果,我的意思是:

index.pug

html
head
title Hello
body
h1 Hello World!
script.
var age = #{age};
var name = #{name};
script(src='script.js')

脚本.js

var person = {
age: age, // the age variable from the internal script is used
name: name // the name variable from the internal script is used
};

app.js保持不变!

编辑

app.js

res.render("index", {
age: 91,
name: 'George P. Burdell'
});

应该是

res.render("index", {
age: "91",
name: "'George P. Burdell'"
});

交换后保持数据类型!

请告诉我是否有更好的方法来解决这个问题!目前,这是公认的答案。

关于javascript - 链接 JavaScript 文件的 Pug 字符串插值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50368867/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com