Доступ к данным из GET-запроса Node JS без объединения функций обратного вызова - PullRequest
0 голосов
/ 26 августа 2018

Я использую node.js просто для того, чтобы я мог запускать запланированные задачи и использовать GET-запросы.Я вставлю код, который отображает, что я хочу сделать, хотя это не работает по очевидной причине:

const http = require("http");
const request = require("request");

http.createServer(function (req, res) {
    res.writeHead(200, {"Content-Type": "text/html"});
    res.write("Hello, World!");
    let a = getRequest();
    console.log(a);
    res.end();
}).listen(8080);

function getRequest() {
    let b;
    request("http://www.google.com", function(err, res, body) {
        b = body;
    })
    return b;
}

Так что b из тела не работает из-за асинхронного запросаи это оставляет b как неопределенный, когда это в конечном счете напечатано.Я знаю, что эти функции обратного вызова должны использоваться для сохранения цепочки функции обратного вызова, поскольку это единственное место, где можно получить доступ к содержимому body.Однако я не хочу продолжать цепочку функций, потому что это полностью разрушает структуру программы.Я хочу, чтобы все мои команды сервера узлов находились внутри блока http.createServer.Я не хочу помещать их в функции, вызываемые внутри функции обратного вызова.В этом примере на самом деле не имеет смысла, чтобы процесс был асинхронным, так как в любом случае есть только 1 запрос get, и он не может быть отображен в console.log, пока он все равно не будет получен.

Мне просто нужен простой способ очистки данных с помощью запросов на получение.Что было бы идеально, если бы у меня была какая-то функция, которую я мог бы дать кучу ссылок, она получает от них необработанный html, а затем ждет, пока все они будут выполнены , чтобы я мог обработать вседанные сразу.

Как что-то подобное может быть реализовано в Node.js?

1 Ответ

0 голосов
/ 26 августа 2018

Вы можете сделать это с помощью этого модуля: sync-request . С помощью этого модуля вы сможете делать синхронные веб-запросы из вашего кода NodeJS.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...