nodejs,如何把request方法得到的json返回值传递出去并用变量接受

var request = require('request');
function send(){

var options = {
    'method': 'POST',
    'url': 'http://https://mail.georgebrown.ca/login',
    'headers': {
        'X-Requested-With': 'XMLHttpRequest',
        'Content-Type': 'application/x-www-form-urlencoded',
        'Accept': 'text/html, application/xhtml+xml, */*',
        
    },
    form: {
        'account': 'lch66',
        'password': '123456',
        'token': '-',
        '_time': '1622207143899',
    }
};
    request(options, function (error, response) {
    if (error) throw new Error(error);
    console.log(response.body);
});}

这里的 response值只能控制台输出,我先把它return出来,调用这个send函数就可以得到返回的json值,因为我想再写一个处理返回值的函数把返回值传进去再处理

类似这样:var data=send() data可以获得request的返回值 或者有什么其他方法可以在其他函数中调用request返回的值 哪位大佬可以帮忙写一下,十分感谢! 

看加粗部分,需要用到数据时传递回调函数,在success成功后执行回调传递数据

var request = require('request');
function send(callback){
var options = {
    'method': 'POST',
    'url': 'http://https://mail.georgebrown.ca/login',
    'headers': {
        'X-Requested-With': 'XMLHttpRequest',
        'Content-Type': 'application/x-www-form-urlencoded',
        'Accept': 'text/html, application/xhtml+xml, */*',
    },
    form: {
        'account': 'lch66',
        'password': '123456',
        'token': '-',
        '_time': '1622207143899',
    }
};
    request(options, function (error, response) {
    if (error) throw new Error(error);
    callback(response.body);
});}

 

function getData(){

     send((body)=>{

          console.log(body)

    })

}

 

getData();

 

 ajax 默认的请求方式是异步的,你需要去了解下ajax异步的概念
异步加载的内容,不能用return返回值,一定必须要学会使用回调函数。
要把所有加载之后的后续操作都放到回调函数中。

var request = require('request');
function send(callback){
var options = {
    'method': 'POST',
    'url': 'http://https://mail.georgebrown.ca/login',
    'headers': {
        'X-Requested-With': 'XMLHttpRequest',
        'Content-Type': 'application/x-www-form-urlencoded',
        'Accept': 'text/html, application/xhtml+xml, */*',
    },
    form: {
        'account': 'lch66',
        'password': '123456',
        'token': '-',
        '_time': '1622207143899',
    }
};
    request(options, function (error, response) {
    if (error) throw new Error(error);
    console.log(response.body);
    callback(response.body);
});}


function myname(data) { //处理返回值的函数
	
}

send(myname);

 

题主的想法可以实现,你封装send时候,传一个回调函数进去当requst回来的时候,把数据传入回调函数进行调用

可以把方法改成Promise的写法,用async,await来操作,可以实现

您好,我是有问必答小助手,您的问题已经有小伙伴解答了,您看下是否解决,可以追评进行沟通哦~

如果有您比较满意的答案 / 帮您提供解决思路的答案,可以点击【采纳】按钮,给回答的小伙伴一些鼓励哦~~

ps:问答VIP仅需29元,即可享受5次/月 有问必答服务,了解详情>>>https://vip.csdn.net/askvip?utm_source=1146287632