Это похоже на запах кода ... Но, тем не менее, есть более чистые способы сделать это.
Если вы хотите предоставить объект данных, то есть объект, содержащий только ключи и значения, вы можете встроить его в отображаемую веб-страницу, сделать его доступным через некоторую конечную точку API, которую клиент может получить с помощью запроса AJAX, или выставить необработанный файл Javascript, который можно включить через <script>
(или, я думаю, script(...)
в pug).
Если вы хотите предоставить более сложный объект Javascript, например, класс или объект с определениями функций, вы можете открыть файл Javascript и включить его через script(...)
.
Однако вы должны быть очень осторожно выставляя файл, используемый сервером. Если есть какие-либо уязвимости, они теперь общедоступны. Если есть какие-либо жестко запрограммированные пароли (которых в любом случае не должно быть в коде), они теперь общедоступны. Все в этом файле теперь общедоступно, поэтому, если вы действительно хотите это сделать, будьте очень осторожны с тем, какой код попадает в этот теперь клиентский файл.
Если вам нужно больше подробностей о том, как это может работать, пожалуйста, прокомментируйте:)
Редактировать: Также имейте в виду, что использование встроенных методов и методов include не позволит обновлять переменную на лету. Если вам нужен клиент для отслеживания каких-либо изменений данных по мере их изменения на сервере, вы можете использовать AJAX. Это лучший метод, на мой взгляд. Он предлагает вам максимальную гибкость.
Другое редактирование: Судя по проблемам в экспресс-проекте , он, кажется, не очень хорошо поддерживается и, возможно, имеет проблемы с безопасностью. А пока я бы этого избегал. Может быть, позже это будет полезно и безопасно.