如何在外部js中获取res.render()传递的数据
console.log(<%- JSON.stringify(articles) %>); 比如我在html文档中的<script>标签中可以打印的到 但是如果我放到一个js文件里面,引入这个js文件,就会报 Uncaught SyntaxError: Unexpected token < 请问前端应该怎么接收res.render()过来的数据,谢谢指教
2 回复
express 吗, res.render 是express用来渲染模板的, js 正常情况下是放在 public 目录下的 给你两个方案吧
- 直接在页面上输出数据, js 获取
<script>
var REMOTE_DATA = "<%= JSON.stringify(articles) %>";
</script>
或者放在dataset里也行 看你习惯
2.把 js 放到 views 目录下, 修改扩展名为 ejs 然后在里面使用 ejs 语法 在 res.render 之前设定 content-type 为"application/x-javascript" 就行了
第二种方法我没试过 如果出现header重复的话, 就只能hack render方法或者自己实现render, 利用fs.readFile和replace+正则就能很方便的实现
建议第一种,其实就是设置一个变量~这种方法实测可用