如何在外部js中获取res.render()传递的数据
发布于 8 年前 作者 zhengjun87 10933 次浏览 来自 问答

console.log(<%- JSON.stringify(articles) %>); 比如我在html文档中的<script>标签中可以打印的到 但是如果我放到一个js文件里面,引入这个js文件,就会报 Uncaught SyntaxError: Unexpected token < 请问前端应该怎么接收res.render()过来的数据,谢谢指教

2 回复

express 吗, res.render 是express用来渲染模板的, js 正常情况下是放在 public 目录下的 给你两个方案吧

  1. 直接在页面上输出数据, 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+正则就能很方便的实现

建议第一种,其实就是设置一个变量~这种方法实测可用

回到顶部