Javascript Node.JS https请求返回JSON

Javascript Node.JS https请求返回JSON,javascript,json,node.js,https,Javascript,Json,Node.js,Https,我有一个关于Node.js HTTPS请求的问题。 该请求发送到服务器,服务器将返回JSON响应。然后我想解析响应并将其存储在变量中,并将其与其他函数一起使用 let obj=JSON.parse(response); return obj; 我编写的函数包括: let protocol="https"; let hostStr="www.example.com"; let pathStr="***"; let students=makeRequest("ABCDEFG","getStude

我有一个关于Node.js HTTPS请求的问题。 该请求发送到服务器,服务器将返回JSON响应。然后我想解析响应并将其存储在变量中,并将其与其他函数一起使用

let obj=JSON.parse(response);
return obj;
我编写的函数包括:

let protocol="https";
let hostStr="www.example.com";
let pathStr="***";

let students=makeRequest("ABCDEFG","getStudents"));
console.log(students);

function makeRequest(token,method){    
       let obj='';
        let options={
            host:hostStr,
            path:pathStr,
            method:"POST",
            headers:{"Cookie":"JSESSIONID="+token}
        };
        let https=require(protocol);
        callback = function(response){
            var str='';

            response.on('data',function(chunk){
                str+=chunk;
            });

            response.on('end',function(){
                obj=JSON.parse(str);
            });
        }
        let request=https.request(options,callback);
        request.write('{"id":"ID","method":"'+method+'","params":{},"jsonrpc":"2.0"}');
        request.end();
        return obj;
    }

我希望您能帮助我

了解Javascript的异步方面。您所做的无法工作,因为字符串在异步回调中更新。我已经把坏了的部分修好了

let protocol=“https”;
让hostStr=“www.example.com”;
让pathStr=“***”;
makeRequest(“ABCDEFG”、“getStudents”))
.然后(学生=>{
//这是你想要的
console.log(学生);
});
函数makeRequest(令牌、方法){
返回新承诺(解决=>{
设obj='';
让选项={
主持人:hostStr,,
路径:pathStr,
方法:“张贴”,
标题:{“Cookie”:“JSESSIONID=“+token}
};
让https=require(协议);
回调=函数(响应){
var-str='';
响应.on('data',函数(块){
str+=chunk;
});
on('end',function(){
obj=JSON.parse(str);
解决(obj);
});
}
let request=https.request(选项,回调);
write(“{”id:“id”,“method:“+method+”,“params:{}”,jsonrpc:“2.0”}”);
request.end();
});

}
非常感谢!现在我有一个新的问题,我必须得到一个令牌,直到我收到它,然后做我的代码的其余部分。但是我不能让它等到服务器响应我的请求。如何实现这一点?最简单的方法是在第一个请求的回调中发出下一个请求,但我建议您查看异步函数,它们可能会对您有很大帮助。并检查图书馆,如请求承诺。