Передать массив узлов в файл JavaScript в файле e js - PullRequest
0 голосов
/ 14 января 2020

Я хочу передать массив из моего приложения. js в JavaScript из моего файла E JS. В моей функции l oop я хочу заполнить некоторые данные объектами, чтобы превратить их в массив JS для календаря встреч. Но я не могу передать данные ... Вот мой фрагмент кода:

приложение. js:

router.route ('/torauswahl').get(function (req, res) {

    Buchung.find(function (err, buchungen) {
        if (err)
            return res.send(err);

        res.render('torauswahl',{
            buchungen: JSON.stringify(buchungen)
        });
    });
});

И JS в моем E JS:

var appointments = [];
        var appointment = {};
        var buchungArray = <%=buchungen %>;

        for(var i=0; i < buchungArray.length; i++) {
            var monat = 1 + buchungArray[i].from.getMonth();
            var von = -1 + buchungArray[i].from.getHours();
            var vonMin = buchungArray[i].from.getMinutes();
            var bisMonat = 1 + buchungArray[i].from.getMonth();
            var bis = -1 + buchungArray[i].to.getHours();
            var bisMin = buchungArray[i].to.getMinutes();

            if (bisMin === 0) {
                bisMin = bisMin + "0";
            }
            if (vonMin === 0) {
                vonMin = vonMin + "0";
            }

            appointment[i] = {
                calendar: buchungArray[i].tor,
                start: new Date(buchungArray[i].from.getDate(), monat, buchungArray[i].from.getDay(), von, vonMin, 0),
                end: new Date(buchungArray[i].to.getDate(), bisMonat, buchungArray[i].to.getDay(), bis, bisMin, 0)
            }
            appointments.push(appointment[i]);
        }

Где я объявляю массив buchungArray, IntelliJ показывает мне ошибку с: Выражение ожидается. Я благодарен за любую помощь! Cheeres, Mert

1 Ответ

2 голосов
/ 14 января 2020

<%=buchungen %> экранирует данные для вставки в HTML, но вы вставляете их в <script>, где обычные HTML правила для экранирования не применяются.

Вы можете получить необработанный вывод с помощью <%- buchungen %>.

Ваша IDE по-прежнему может жаловаться, поскольку пытается обработать ваш шаблон E JS, как если бы он был чистым JavaScript. Возможно, вы захотите сохранить данные в другом месте, например, в атрибуте data.

<script data-buchungen="<%=buchungen %>">
    var buchungArray = JSON.parse(document.currentScript.dataset.buchungen);
    // etc
</script>
...