最近項目遇到后台數據傳入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));