admin管理员组

文章数量:1394217

If you use node.js and ejs and render JavaScript object to ejs, the resultant HTML page has the following syntax:

[object Object]

despite the fact that my object is as follows:

[{"a": 3, "b": 10}, {"c":3, "d":20}, {"e":1, "f":55}]

However, I want to render the object itself (object literal if I understand it correctly), not the useless [object Object].

So how can I render it properly? res.render("index", {result: listOfObject.valueOf()}) didn't work.

If you use node.js and ejs and render JavaScript object to ejs, the resultant HTML page has the following syntax:

[object Object]

despite the fact that my object is as follows:

[{"a": 3, "b": 10}, {"c":3, "d":20}, {"e":1, "f":55}]

However, I want to render the object itself (object literal if I understand it correctly), not the useless [object Object].

So how can I render it properly? res.render("index", {result: listOfObject.valueOf()}) didn't work.

Share Improve this question edited Jul 9, 2015 at 0:59 Blaszard asked Nov 5, 2013 at 15:52 BlaszardBlaszard 32.1k54 gold badges159 silver badges243 bronze badges
Add a ment  | 

2 Answers 2

Reset to default 3

[object Object] is what you get when you call .toString() on an anonymous object. This is implicitly done when you concatenate with another string (e.g. "my object: " + {a:'b'}).

If you want to get the output you're looking for, you need to use

JSON.stringify(yourObjectHere)

Which prints it all out nicely.

res.render("index", { result: JSON.stringify(listOfObject) });

本文标签: javascriptSend object from nodejs to ejsnot object ObjectStack Overflow