ejs模板数据传入js

本文介绍如何在EJS模板中将后端数据传递给前端,并解决在外部JavaScript文件中获取这些数据的问题。通过使用JSON.stringify方法和非转义语法,确保数据正确传递并能在外部JS文件中被解析。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

最近项目遇到后台数据传入ejs模板,但前端因为制作聊天室功能需要,用户的信息。通过jade方法的思考,和查阅资料找到方法。

第一步

<script>
var uid = '<%=user._id%>'

<script>

原理:后台模板原理就是拼接字符串,所以可以直接使用ejs语法,在html页面内部,将后台模板值赋给一个变量

问题:如果在引用一个外部js,发现外部js并不能使用该方法得到值,原因就是外部js属于服务器静态文件,只有.ejs文件才能拿到后台数据

第二部(解决上一个问题)

解决方式:外部不能引用就内部引用喽,var 一个全局变量自然就传递过去了

<script>
var uid = '<%=user._id%>'

<script>

<script src="/static/js/out.js"></script>

问题:传递一个字符串是可以了,但当你传递var uid = '<%=user%>'一整个对象时候发现拿到值是[object object]

第三步(同上)

解决方式:发现ejs的转义语法并不能转出我们想要的对象,所以先用ejs语法将其字符串化,在用非转义直接复制给一个变量。使用时在将字符串对象转义回真正对象。

<script>

var user = '<%- JSON.stringify(user) %>'

</script>

out.js

console.log(JSON.parse(user));

转载于:https://www.cnblogs.com/LiSuSpAu/p/7923167.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值