我正在使用Nodejs和ExpressJS。如何在靜態JavaScript中嵌入EJS代碼?
我有一個HTML頁面,其中有一個Javascript文件被引用。
<script type="text/javascript" src="../javascripts/game.js"></script>
我還沒有將所有的Javascript嵌入HTML頁面本身,因爲它太大了。
現在我需要使用我的Javascript(game.js)來訪問控制器傳遞的一些變量。我想要做這樣的事情 -
var max_players = parseInt("<%= table.total_players %>");
console.log("<%= table.name %>")
我正在傳遞表變量,同時呈現頁面。
exports.index = function(req,res){
//code
res.render('mytable', {table: table });
};
但是,這顯然不工作,因爲JS文件被呈現爲一個靜態文件。 如果我需要讓這些變量可以被Javascript訪問,我該如何去做?
我讀過的地方可以通過將Game.js重命名爲Game.ejs來實現。但是我在哪裏放置Game.js文件(以便它的渲染正確且動態?)
如果還有其他方法可以實現此目的,請讓我知道。
我通常爲此使用一個客戶端變量...'clientData = JSON.stringify({table:table});'對於任何意圖暴露給客戶端的東西..朝着我的html頂部,頭......然後它可用...在.Net中我將使用HttpContext.Current.Items ['__ClientData__']來存儲動態對象並將其公開...在Node中,它通常對模型顯式。 – Tracker1
@Jonathan Lonowski - 非常感謝。相當具有描述性。 –