Как получить данные на стороне сервера, а затем сохранить их на стороне клиента для дальнейшего использования? - PullRequest
0 голосов
/ 05 декабря 2018

Для контекста: у меня есть домашняя страница (index.js), в которой есть панель поиска.Я пытаюсь использовать функцию автозаполнения jQuery, чтобы включить автозаполнение в этой строке поиска.Эта функция может принимать параметр массива для данных.

Как правильно запросить эти данные с сервера? и Как правильно хранить эти данные? Я ищу пример с конкретным синтаксисом для завершенияэта задача.

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

Вот мой код из index.js:

app.get('/showNames', function (req, res) {
  var indexFile = require('./serverJS/page_index.js');
  var promise = indexFile.getTitleArray();
  promise.then(dataArray => {
    console.log(dataArray);
    res.send(dataArray);
  })
});

Приведенный выше код записывает правильные данные в консоль.Тем не менее, кажется, что есть разрыв с моим кодом на стороне сервера (index.ejs):

<script>
      $(function() {
        var dataArray;
        fetch('showNames')
          .then(data => {
          dataArray = data;
          console.log(JSON.stringify(dataArray));
        })
        $( "#searchBox" )
          .autocomplete({
          minLength: 0,
          source: function( request, response ) {
            // delegate back to autocomplete, but extract the last term
            response( $.ui.autocomplete.filter(
              dataArray, extractLast( request.term ) ) );
          }
        })
      })
</script>

Конечно, автозаполнение имеет больше кода, но я думаю, что это весь соответствующий код для моей проблемы.Когда я пытаюсь напечатать переменную "dataArray" на стороне сервера, я получаю {}.

Честно говоря, я даже не могу сказать, правильно ли я решаю эту проблему или я иду в правильном направлении.

Я не уверен, что имеет значение, поэтому я просто перечислю технологии, которые я использую.Я использую nodejs с express, ejs в качестве движка шаблонов и jsdom, чтобы включить jquery для файлов ejs.

...