Вызов AJAX серверу node.js возвращает неопределенное значение - PullRequest
0 голосов
/ 03 марта 2019

Я пытаюсь получить доступ к строке, которая возвращается серверной функцией Node.js.

function createString () {
    do something ...
    console.log(finalString);
    return finalString;
};

Я использую простой AJAX-запрос JavaScript для получения строки с сервера

const xhr = new XMLHttpRequest();
xhr.onreadystatechange = function () {
    do something ...
};
xhr.open('GET', 'http://localhost:5000/array');
xhr.send();

Мой сервер выглядит так:

app.get('/array', (req, res) => {
        console.log('request received');
        console.log(createString());
        res.send(createString());
    }
);

createString ()всегда возвращается как «undefined» для запроса AJAX, даже если он записывает правильную строку в finalString.

Я считаю, что проблема заключается в асинхронном аспекте AJAX, но Я не уверен, как сказать res.send () для ожидания запуска createString () .

Любая помощь приветствуется!

1 Ответ

0 голосов
/ 03 марта 2019

Вы можете передать объекты req и res в функцию createString.(Я предполагаю, что ваш createArray является опечаткой, и должен быть createString).Действительно, если у вас есть только эта функция, вы можете просто:

server.js

app.get('/array', createString);

createString.js

function createString (req, res) {
    do something ...
    console.log(finalString);
    return res.status(200).send(finalString);
};
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...