nodejs Добавить результат в переменную - PullRequest
0 голосов
/ 04 июня 2018

Извинения, я не знаком с nodejs.

У меня есть следующая строка, которая дает мне результат myResult в первой части httpsGet.

httpsGet(myRequest,  (myResult) => {

});

Как быЗатем я добавляю его в следующий код и добавляю к части заголовка метаданных переменной?

var metadata = { 
    title: "Title",
    subtitle: "Subtitle"
};

Я пробовал то, что было бы очевидным:

var metadata = { 
    title: "Title" + myResult,
    subtitle: "Subtitle"
};

Но это не работает.

Спасибо.

Обновление (для включения функции httpsGet)

var myRequest = 'ThisData';
var https = require('https');

function httpsGet(myData, callback) {
    var options = {
        host: 'www.example.com',
        port: 443,
        path: '/path_to.json',
        method: 'GET',
    };

    var req = https.request(options, res => {
        res.setEncoding('utf8');
        var returnData = "";

        res.on('data', chunk => {
            returnData = returnData + chunk;
        });

        res.on('end', () => {
            var pop = JSON.parse(returnData).data;
            callback(pop);  
        });
    });
    req.end();
}

Мой ответ в файле .json:

{
  "Name": "ThisData",
  "data": "this is the data I want to append to Title"
}

Ответы [ 2 ]

0 голосов
/ 04 июня 2018

Привет, я не уверен в вашем коде, но для доступа к чему-либо из обратного вызова вы можете получить к нему доступ как к объекту JSON, так что в вашем случае

var metadata = {title: myResult.Title , подзаголовок: "Subtitle"};

Должно работать.Всякий раз, когда вы сталкиваетесь с такими вещами, лучше всего сначала консоль.log данных (то есть console.log (JSON.stringify (myResult))) и проверка всех ожидаемых параметров.

0 голосов
/ 04 июня 2018

Я надеюсь, что вы добавляете myResult в область действия функции обратного вызова.В идеале ваш код должен выглядеть следующим образом:

var metadata = { 
    title: "Title",
    subtitle: "Subtitle"
};

httpsGet(myRequest, (myResult) => {
    metadata = { 
        title: "Title" + myResult,
        subtitle: "Subtitle"
    };
});

Если вы новичок в узле js, попробуйте изучить обратные вызовы и асинхронные функции в nodejs.Я надеюсь, что вы будете :) 1004 *

...