Node Express: невозможно отобразить данные с помощью Typeahead - PullRequest
0 голосов
/ 03 июня 2019

Я использую typeahed для извлечения данных в реальном времени с помощью ajax, но возвращенный результат не отображается в текстовом поле.

EJS-код:

<div class="container">
    <div class="row">
        <div class="col-md-8">
            <label for="search">Contact Search</label>
            <input class="typeahead tt-query" spellcheck="false" autocomplete="off" name="typeahead"
                type="text" />
        </div>
    </div>
</div>

AJAX-код:

<script>
    $(document).ready(function () {
        $('input.typeahead').typeahead({
            name: 'typeahead',
            remote: 'http://localhost:3000/search?key=%QUERY',
            limit: 10
        });
    })
</script>

КОД УЗЛА:

app.get('/search', function (req, res) {
    var fetchSql = 'SELECT company from leads where company like "%' + req.query.key + '%"'
    dbConfig.varConnection[dbName].query(fetchSql, function (err, rows, fields) {
        if (err) throw err;
        var data = [];
        for (i = 0; i < rows.length; i++) {
            data.push(rows[i].company);
        }
        res.end(JSON.stringify(data));
    })
});

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

URL: 'http://localhost:3000/search?key=com'

РЕЗУЛЬТАТ: ["Violet Company","No Company","Latest Company","Today Company","Company","comapny","Company is not herer"]

Вышеуказанный результат должен отображаться в текстовом поле typeahead.

Я пошел по этому пути: https://codeforgeek.com/ajax-search-box-using-node-mysql/

...