您可以使用此(客户端):
<script> var myVar = <%- JSON.stringify(myVar) %>;</script>
您还可以使用EJS渲染
.js文件:
app.get('/test.js', function(req, res) { res.set('Content-Type', 'application/javascript'); res.render('testPage', { myVar : ... });});但是,模板文件(
testPage)仍需要具有
.html扩展名,否则EJS将找不到它(除非您另行告诉Express)。
正如@ksloan在评论中指出的那样:您必须小心
myVar包含的内容。如果其中包含用户生成的内容,则可能会使您的网站保持打开状态,以进行脚本注入攻击。
防止发生这种情况的可能解决方案:
<script> function htmlDepre(input){ var e = document.createElement('div'); e.innerHTML = input; return e.childNodes.length === 0 ? "" : e.childNodes[0].nodevalue; } var myVar = JSON.parse(htmlDepre("<%= JSON.stringify(myVar) %>"));</script>


