【发布时间】:2021-06-04 08:46:35
【问题描述】:
使用 nodejs、express 和 ejs。
我定义了变量“结果”,当我在索引页面上的 router.get 函数中使用 console.log(result) 读取时,会产生一个完美形成的对象数组。
然后我继续在 router.get 函数中呈现新页面:
res.render('new_page', { title: 'New Page Header', parameters : result.rows});
标题在新页面上显示正确,但是参数,当我直接在ejs文件中引用它们时(),它们显示如下:
[对象对象],[对象对象],[对象对象],[对象对象],[对象对象],[对象对象],[对象对象]
正确地有七行,但它们与文字单词对象一起出现,而不是实际内容。同样,当我在 ejs 中引用单行时,它将显示为 [object Object],如果我尝试深入研究这些行,则不会出现任何内容。
将对象作为文字“对象”传递的可能原因是什么?可能很简单,因为我是新手,但对于我的生活,我无法解决。
【问题讨论】:
-
您希望它如何呈现?如果你想要 JSON 格式,那么你可以这样做 ->
parameters : JSON.stringify(result.rows),否则你需要扩展你的 EJS 来遍历数组。 -
这就是数组 toString 的样子,iirc。
-
不是字面意思
object,而是字符串"[object Object]"。这就是您从toString在不覆盖toString的对象上得到的结果。从您的输出来看,您似乎有一个对象数组,并且您在其上使用toString,它将在数组的每个元素上使用toString,并将它们与,连接在一起。 -
您不能直接在模板中渲染数组。您必须在模板语言中迭代数组并呈现数组中的值。您也不能渲染一个对象,您必须渲染该对象的一个具有字符串值(或易于转换为字符串的值)的属性。
标签: javascript node.js express