Обратите внимание, что это было отредактировано с момента первоначальной публикации
Я создаю панель данных с использованием NodeJs, Express и Pug, и у меня есть вопрос относительно передачи данных из NodeJs/Express в файл Pug.
Я знаю, что вы можете передавать переменные напрямую в файл Pug через локальные переменные экспресса, как показано ниже:
res.render('index', {title: 'This is the Title'});
Мой вопрос касается наиболее эффективного способа создания HTML с использованием этих данных. Есть 3 основных метода, которые я рассматриваю для использования, и мне хотелось бы получить более опытную информацию о том, какой из них может быть наиболее подходящим.
Первый вариант — передать данные с помощью Socket, а затем создать HTML-элементы в Javascript, используя данные и добавляя их к телу.
Меня больше всего беспокоит этот вариант, так как он может быть не таким эффективным при построении больших объемов HTML-кода в Javascript после того, как страница была отрисована.
Второй вариант, который я рассматриваю, — создать элементы в файле Pug (передавая только количество элементов), а затем предоставить данные через Javascript после отображения страницы.
Мой последний вариант - передать все данные (примерно 3 таблицы, около 5-10 строк с 5 столбцами данных) в файл Pug и создать элементы с данными внутри файла шаблона.
Прошу прощения, если этот вопрос не имеет смысла, я относительно новичок в Pug, Express и Node, но каждый день совершенствуюсь. Любые идеи или советы/методы будут чрезвычайно оценены.
Если есть какая-либо другая информация, которая может помочь, пожалуйста, спросите.
Спасибо за прочтение!
Извините, я относительно новичок в StackOverflow, но я ценю ответ. Данные, на которые я ссылаюсь, не такие большие, как я изначально представлял, возможно, они состоят только из 30-50 строк, возвращаемых из базы данных, преобразованных в JSON. Моя главная причина для беспокойства заключается в том, что во всех примерах Express Locals, которые я видел, он использовался только для простых переменных, таких как заголовок и имена. Текущая система создает большую часть HTML в JS, что, как я полагал, вызовет больший удар по производительности, чем его рендеринг в Pug.



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


Этот вопрос расплывчатый. Вы спрашиваете о производительности с «большими» наборами данных, но о каких больших мы говорим? Лично я (некоторые могут не одобрить) избегаю рендеринга на стороне сервера, потому что я предпочитаю использовать ресурсы каждого клиента для создания страницы (с Angular) и использовать только Node для операций ввода-вывода, как вы сейчас делаете, чтобы поддерживать его быстро.