Узел.js: существует ли синхронная версия ' http.метод get ' в узле.js?


Существует ли синхронная версия метода http.get в узле.js?

Что-то вроде:

http.getSync({
    host: 'google.com', 
    port: 80, 
    path: '/'
}, function(response){  

});

console.log(response)
Иногда это было бы очень полезно.
2 8

2 ответа:

Нет, нет. я честно не вижу варианта использования.

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

Существует библиотека sync-request, которая довольно проста в использовании. Внутренне он порождает дочерний процесс синхронно и использует then-request , поэтому параметры подобны этой библиотеке.

Как заявляли другие,я бы предостерег от использования этого в вашей логике выполнения. Тем не менее, это может быть очень удобно для загрузки конфигурации.

Если вы загружаете конфигурацию, другой стратегией может быть использование отдельного скрипта для запуска вашего процесса. Пример:

var http = require("http"),
    cp   = require("child_process");

// Starting process
if (process.argv.length < 3) {
    return http.get("http://www.google.com/index.html", function(res) {
        var config = {
            statusCode : res.statusCode,
            headers    : res.headers
        };

        cp.fork(module.filename, [JSON.stringify(config)]);
    });
}

// Config provided
var config = JSON.parse(process.argv[2]);

console.log(config.statusCode);