【发布时间】:2022-01-02 23:33:11
【问题描述】:
在我的路由处理程序中,我将一个对象(该对象是对数据库的 SELECT 查询的结果)传递给我的 ejs 文件,该文件呈现如下:
const query = await pool.query('SELECT * FROM table');
const obj = query.rows();
response.render('/ejspage', {
obj: obj
});
在我的 ejs 文件中,我尝试将此对象分配给一个变量并循环遍历它:
<script>
var data = '<%= obj %>';
data.forEach(function(o) {
console.log(o);
}
</script>
这会导致以下错误:Uncaught TypeError: obj.forEach is not a function
我曾尝试使用JSON.parse(obj),但这会导致以下错误 Uncaught SyntaxError: Unexpected token o in JSON at position 1
我也尝试过JSON.stringify(obj) 来解决错误,但没有成功
当我打印出变量 console.log(obj) 时,我得到:
[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
我知道我可以在 ejs 中使用嵌入式 javascript(当我这样做时,我可以在 obj 上使用 forEach() 就好了)但出于我的特定目的,我想按照所示的方式进行操作(即在 <script>标签)。
【问题讨论】:
标签: javascript express ejs