我正在从客户端向Node.js发送POST请求。在请求的处理程序中,我使用数据发出一个HTTP POST请求(在Node.js中),这给了我一个JSON数据作为响应,然后依次使用该数据发出另一个HTTP POST请求(在Node.js中)这给了我一组数据作为回应。现在,我想将此响应数据返回到处理程序函数,以便将作为响应接收的数据集发送回客户端。我该如何实现?
server.route({
path:"/test",
method:"POST",
handler:function(request,reply){
var load=request.payload;
UserAuth(load);
return reply({status:"Ok"});
}
});
function UserAuth(newdata){
request({
har:{
url:"URL",
method:"POST",
headers:[
{
name:'content-Type',
value:"application/x-www-form-urlencoded;charset=utf-8"
}
],
postData:{
mimeType: 'application/x-www-form-urlencoded',
params:[
{
name:"username",
value:UserDetails["username"]
},
{
name:"password",
value:UserDetails["password"]
},
{
name:"output_mode",
value:UserDetails["output_mode"]
}
]
}
}
},function(error,response,body){
var obj = JSON.parse(body);
if(obj.sessionKey != null || obj.sessionKey!=""){
PostDataToS(newdata,obj.sessionKey);
}else{
console.log(error);
}
});
}
function PostDataToS(data,sessionkey){
request({
har:{
url:SEARCH_URL,
method:"POST",
headers:[
{
name:'content-Type',
value:"application/x-www-form-urlencoded;charset=utf-8"
},
{
name:"Authorization",
value:sessionkey
}
],
postData:{
mimeType: 'application/x-www-form-urlencoded',
params:[
{
name:"search",
value:data["search"]
},
{
name:"preview",
value:"false"
},
{
name:"output_mode",
value:"json"
},
{
name:"exec_mode",
value:"oneshot"
}
]
}
}
},function(error,response,body){
obj2 = JSON.parse(body);
var secondLayer=obj2.results;
returnfunc(secondLayer);
});
}
function returnfunc(data){
console.log("inside return func");
console.log(data)
}
我必须returnfunc()
在的请求处理程序中将收到的数据发送回客户端/test
。
只需将reply函数传递给您的回调函数
server.route({
path:"/test",
method:"POST",
handler:function(request,reply){
var load=request.payload;
UserAuth(load);
}
});
function UserAuth(newdata, reply){
request({...},function(error,response,body){
var obj = JSON.parse(body);
if(obj.sessionKey != null || obj.sessionKey!=""){
PostDataToS(newdata,obj.sessionKey, reply);
} else {
console.log(error);
}
});
}
function PostDataToS(data, sessionkey, reply){
request({...},function(error,response,body){
obj2 = JSON.parse(body);
var secondLayer=obj2.results;
reply.continue(obj2.results);
});
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句