Как включить файл EJS в файл app.js? - PullRequest
0 голосов
/ 12 ноября 2018

У меня есть файл index.ejs, в котором я использовал скрипт script и написал несколько javascript для манипуляций с dom. Теперь я хочу использовать переменную из этого файла в моем файле app.js. Как этого добиться? Для ссылки на переменную файла ejs мы делаем так:

{someVariable:value}

Я просто хочу сделать наоборот, то есть переменная доступа, объявленная в теге script файла ejs, в файл app.js.

// index.ejs

<script>
    window.onload=function(){var c = document.getElementById("city_search").options[1].value;
        console.log(c);
     };
        function changeCarousel(){
        var x = document.getElementById("city_search").value;
        console.log(x);
     }
</script>

Как получить доступ к переменной x в app.js, поскольку она там не объявлена.

1 Ответ

0 голосов
/ 12 ноября 2018

Как получить доступ к переменной x в app.js, поскольку она там не объявлена.

Вы не можете.Не напрямую.Переменная x находится внутри браузера, работающего на клиентском компьютере, и не доступна напрямую или не видна вашему серверу или вашему серверному компьютеру.

Когда у вас есть переменная в Javascript на веб-странице, которая работает вбраузер, единственный способ получить это на ваш сервер - это сделать вызов Ajax на ваш сервер или встроить это значение в URL и запросить новую страницу с этим значением в URL (как часть пути или параметра запроса).

Чтобы лучше понять, давайте немного рассмотрим, как работает файл EJS с вашего сервера node.js.

  1. Страница запросов браузера (которая представлена ​​вашим файлом EJS).
  2. Ваш сервер получает запрос на эту страницу.
  3. Сервер собирает любые релевантные данные для этой страницы, помещает эти данные в объект и затем отображает страницу EJS.Это расширит страницу EJS и включит в нее любые нужные данные.
  4. Отображаемая страница EJS отправляется браузеру в качестве ответа на исходный запрос HTTP.
  5. Браузер получает теперь HTMLpage (обработанная страница EJS), анализирует ее и отображает ее.
  6. Браузер анализирует и запускает любые теги сценариев на странице.

В точке, где сценарии выполняются в браузере,они являются полностью отдельной средой от вашего сервера.Они работают на клиентском компьютере в браузере, а не на сервере.Чтобы обмениваться данными с веб-страницей с сервером, вы должны инициировать некоторую связь с сервером и отправить серверу некоторые данные.Есть несколько способов сделать это.Например, вы можете сделать Ajax-вызов на сервер, отправить ему данные с веб-страницы, получить от сервера этот Ajax-запрос и затем отправить ответ.Ваш Javascript на стороне клиента затем вернет ответ Ajax и сможет сделать с этим все, что захочет (вставить его на веб-страницу, загрузить другую страницу, показать его пользователю и т. Д.).


Если бы вы более подробно рассказали нам, что вы пытаетесь сделать со значением x, мы могли бы дать более подробную рекомендацию о том, как этого добиться.

...