CNode

如何在外部js中获取res.render()传递的数据

问答
Zzhengjun87发布于10 年前最后回复10 年前2 回复12339 浏览0 收藏

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

查看回复

回复 (2)

W
wssgcg1213#1·10 年前

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+正则就能很方便的实现

W
wangnan0610#2·10 年前

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

参与回复
登录后即可参与回复。登录