Я пытаюсь отобразить массив объектов (точки высоких карт). Данные должны быть точными, но когда я пытаюсь сделать, я получаю [object Object]
вместо самих данных.express.js - показать все данные
JSON.stringify()
Нехорошо с HTML.
util.inspect
, также нет, и добавить данные.
toString()
дайте мне то же самое, что и рендеринг.
Я не знаю, что еще попробовать, что я пытаюсь отправить, это данные для графического изображения высокой четкости.
Минимальный пример:
app.js:
var express = require('express'),
app = express();
app.listen(8080);
app.get('/', function (req, res) {
var view = 'test.ejs',
theme = [{name: '1', y: 5}, {name: '2', y: 2}];
res.render(view, {theme: theme});
console.log('ok');
});
theme_days.ejs:
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
</head>
<body>
<script type="text/javascript">
<%= theme %>
</script>
</body>
</html>
результат (как если бы, toString()
):
[object Object],[object Object]
Результат с JSON.stringify()
:
[{"name":"1","y":5},{"name":"2","y":2}]
Результат с util.inspect
:
[ { name: '1', y: 5 }, { name: '2', y: 2 } ]
EDIT: теперь я понимаю, что S Происходило что '
спасшийся в HTML, есть способ, чтобы предотвратить это?
eacaping happends в уровне шаблона увидеть это для решения http://stackoverflow.com/questions/ 8547131/how-to-include-html-code-in-a-view – Max
@Max: Urg, that и JSON.stringify постоянно устраняют проблему ... – DrakaSAN