js pug 代码_javascript – 如何将Node.js变量传递到Pug脚本标记的内部?

我试图从Node.js中将一个变量发送到我的Pug页面并将其放在一个pug脚本标记内的

javascript变量中. (抱歉,如果这令人困惑)我的node.js代码如下:

app.get('/profile', function (req, res) {

var session = req.session;

res.render('./login.pug', { username: session.uniqueID });

});

当我在我的哈巴狗页面代码中使用这个变量时

input(type='text', id='username', value=username)

它工作正常.该值将更改为变量保存的用户名.但是当我尝试在我的脚本标记中添加相同的值时,例如

script.

var currentuser = username;

浏览器控制台会告诉我用户名未定义.如何在脚本标记内正确传递变量username的值?还有一种方法可以将变量用户名传递到外部js文件中吗?预先感谢您的帮助!

最佳答案 通常在帕格你可以替换这样的变量,但是当我们将句点放在脚本标记的末尾并且常规变量替换在这些块中不起作用时,我们处于

Plain Text块中:

script.

^

为了在纯文本块中输出动态JavaScript,我们需要使用unescaped interpolation来执行!{…}.

如果您只是想输出单个字符串值,只需在插值标记周围加上引号:

var currentuser = '!{username}';

如果你有一个更复杂的JavaScript对象,你可以对变量进行字符串化,你不需要引号,因为它是有效的JavaScript输出.

路线:

res.render('test', {

user: {"name": "Joe Smith"}

});

模板:

var currentuser = !{JSON.stringify(user)};

输出:

如果你很好奇,#{…}转义插值会插入无效字符,如下所示:

模板:

var currentuser = #{JSON.stringify(user)};

输出:

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值