Передача документов мангуста для просмотра и использования в теге скрипта node.js

У меня есть приложение, работающее в Node.js с Express, и я хотел динамически изменять параметры для выбранного объекта с помощью jquery. На самом деле это не большая проблема, но у меня возникают проблемы с использованием параметров res.render (которые являются документами мангуста) в теге скрипта. Я использую их без каких-либо проблем в html (на самом деле нефрит), но в теге скрипта у меня возникает проблема с тем, что ObjectId не является строкой.

Это фрагмент кода: В серверной части:

router.get("/new", function(req, res){
res.render("session/documentos/new", 
    {
        services: res.locals.services
    });
});

В представлении

block content
div
    h1(class="text-center") New document
    form(id="newDoc" action="/session/documentos" method="POST")
        div(class="tab") Service:
            div(class="form-group") 
                select(class="form-control" name="svc" id="svc")
                    option(value="undefined" disabled selected) Choose one
                    for service in services
                        option(value=service._id)=service.name

script.
    $(document).ready(function() {
        var sessLenght = 0;
        var selectedSvc = #{services};
        $("#svc").change(function(){
            console.log("Service changed: " + selectedSvc);
        });
});

И это ошибка, которую я получаю: Ошибка консоли

И в источниках: Ошибка источника в ObjectId

Таким образом, я могу без проблем использовать коллекцию документов «services», но при попытке использовать их в теге script у меня возникают проблемы с элементом ObjectId.

Я думал, что одним из решений будет преобразование ObjectId в строку при запросе к базе данных, но я думаю, что для этого может быть более чистое решение. Какой может быть лучший способ решить проблему?

Любые мысли оценены! заранее спасибо


person Mahum    schedule 08.11.2018    source источник


Ответы (1)


Попробуйте изменить var selectedSvc = #{services};

to var selectedSvc = !{services};

or var selectedSvc = !{JSON.stringify(services)};

person Asaf Aviv    schedule 08.11.2018
comment
Все это уже пробовал, всегда одна и та же проблема. Я читаю информацию о документе, но всегда ошибка над элементом ObjectId - person Mahum; 08.11.2018
comment
@Mahum Может попробовать services.toJSON() или services.toObject() - person Asaf Aviv; 08.11.2018
comment
тоже не работал. Любые другие мысли? Не понимаю, почему я могу использовать документы в html, но не в теге script. - person Mahum; 09.11.2018