Здесь находится новичок Node.js.
При разборе массива от сервера к клиенту res.render() (насколько я понимаю) заменяет кавычки элементами '"'
следующим образом:
Часть index.pug, которая создает переменную:
var topics = #{topics};
Часть index.js, которая создает и анализирует переменную:
router.get('/', function(req, res) {
var data = [];
papers.getAllTopics(function(err, content) {
if(err) {
throw err;
} else {
for (var i = 0; i<content.length; i++){
data.push(content[i].TOPIC);
}
// console.log(JSON.stringify(data));
data = JSON.stringify(data);
console.log(data);
// res.send(data);
}
res.render('index', { title: 'Xintra | Home', "topics": data});
});
});
Если я удалю data = JSON.stringify(data);
то переменные поступают в эту форму как неожиданные идентификаторы:
Как избежать этого и что лучше всего подходит для разбора массивов с сервера на клиент?
В соответствии с https://naltatis.github.io/jade-syntax-docs/#escaping, повторение неэпинированных данных в нефрит или мопс может быть выполнено путем замены
var topics = #{topics};
с
var topics = !{topics};
Это должно дать вам желаемый результат.
var topics = !{topics};
? Это не должно ускользать от ввода<script>
где-то.