Я пытаюсь передать некоторые данные JSON из экспресс-маршрута в файл .js, который находится в шаблоне .pug. Я не могу понять, как этого добиться. Я пытаюсь следующим образом:
Маршрутизатор:
// Office Locations
router.get('/office_locations', (req, res, next) => {
var sql = 'SELECT * FROM office_locations ORDER BY oloffice';
var params = [];
pool.query(sql, params, (err, result) => {
if (err) {
console.info(err);
res.json(err);
} else {
res.render('office_locations', {title: title, tabledata: JSON.stringify(result.rows)});
}
});
});
PUG-файл:
extends layout
block content
.container
include menu.pug
.workspace
.map-content
.map#map
include main-addons.pug
link(rel = "stylesheet" href = "https://unpkg.com/[email protected]/dist/leaflet.css" integrity = "sha512-puBpdR0798OZvTTbP4A8Ix/l+A4dHDD0DGqYW6RQ+9jxkRFclaxxQb/SJAWZfWAkuyeQUytO7+7N4QKrDh+drA= = " crossorigin = "")
script(src = "https://unpkg.com/[email protected]/dist/leaflet.js" integrity = "sha512-QVftwZFqvtRNi0ZyCtsznlKSWOStnDORoefr1enyq5mVL4tmKB3S/EnC3rRJcxCPavG10IcrVGSmPh6Qw5lwrg= = " crossorigin = "")
script(src = "/javascripts/office_locations.js")
script(src = "/javascripts-dev/table.js")
Файл, в котором мне нужна информация о табличных данных, это table.js:
$(document).ready(function() {
// get the table data
var tabledata = !{tabledata};
console.info(tabledata);
});
Но я всегда получаю ложь при входе в консоль.
Как этого добиться?



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Добавьте этот код перед строкой script(src = "/javascripts-dev/table.js"):
script(type='text/javascript').
window.tabledata = "#{tabledata}";
Спасибо! Просто понял, что мне нужно использовать переменную окна.