Arhn - архитектура программирования

Доступ к переменным Express/Node Res с файлом Javascript

Я использую Express/Node и Pug для создания приложения. У меня есть файл Javascript на стороне клиента, который отображает JVectorMap на основе данных, поступающих с экспресс-маршрута и контроллеров.

Я знаю, как получить доступ к данным через представление Pug, а также если я использую тег скрипта в представлении. Мой вопрос: как я могу вытащить весь javascript в другой файл и при этом иметь доступ/работу с данными, отправляемыми в представление?

Сейчас: Маршрут

router.get('/', dashboard.getRecentReviewsLimit, dashboard.getMapData,function(req, res, next) {
    res.render('dashboard', {
      user: req.user,
      dashreviews: res.locals.reviewlimit,
      mapdata: res.locals.mapdata
    });
});

Pug Template/View (этот скрипт обновляет div с картой):

script(type='text/javascript').

    var mapData = !{JSON.stringify(mapdata)};

    var max = 0,
    min = Number.MAX_VALUE,
    cc,
    ........

Как вытащить весь код скрипта в отдельный файл и при этом получить доступ к данным !{JSON.stringify(mapdata)}?


  • Вы можете использовать два скрипта. Первый в основном генерируется Pug. Это будет что-то вроде window.DATA = !{JSON.stringify(mapdata)}. Другой скрипт просто обращается к глобальному объекту window.DATA. 30.01.2018

Ответы:


1

Проще всего просто сгенерировать свой javascript через pug.

Учитывая что-то вроде ./views/js/datamapper.pug:

var mapData = !{JSON.stringify(mapdata)};

var max = 0,
min = Number.MAX_VALUE,
cc,
........

Тогда у вас может быть такой маршрут, как:

router.get('/datamap.js', (req, res) => {
  res.render('js/datamapper', { mapdata: ... });
});
30.01.2018
Новые материалы

Коллекции публикаций по глубокому обучению
Последние пару месяцев я создавал коллекции последних академических публикаций по различным подполям глубокого обучения в моем блоге https://amundtveit.com - эта публикация дает обзор 25..

Представляем: Pepita
Фреймворк JavaScript с открытым исходным кодом Я знаю, что недостатка в фреймворках JavaScript нет. Но я просто не мог остановиться. Я хотел написать что-то сам, со своими собственными..

Советы по коду Laravel #2
1-) Найти // You can specify the columns you need // in when you use the find method on a model User::find(‘id’, [‘email’,’name’]); // You can increment or decrement // a field in..

Работа с временными рядами спутниковых изображений, часть 3 (аналитика данных)
Анализ временных рядов спутниковых изображений для данных наблюдений за большой Землей (arXiv) Автор: Рольф Симоэс , Жильберто Камара , Жильберто Кейрос , Фелипе Соуза , Педро Р. Андраде ,..

3 способа решить квадратное уравнение (3-й мой любимый) -
1. Методом факторизации — 2. Используя квадратичную формулу — 3. Заполнив квадрат — Давайте поймем это, решив это простое уравнение: Мы пытаемся сделать LHS,..

Создание VR-миров с A-Frame
Виртуальная реальность (и дополненная реальность) стали главными модными терминами в образовательных технологиях. С недорогими VR-гарнитурами, такими как Google Cardboard , и использованием..

Демистификация рекурсии
КОДЕКС Демистификация рекурсии Упрощенная концепция ошеломляющей О чем весь этот шум? Рекурсия, кажется, единственная тема, от которой у каждого начинающего студента-информатика..