我正在尝试使用Azure移动服务来处理/处理空数据表上的GET和POST请求。 (真的只是使用移动服务作为通过) 作为其中的一部分,我正在尝试将请求转发到另一个URL并收到响应并通过移动服务返回。我已经找到了下面显示的GET部分,但我遇到了POST部分的问题。
获取部分:(哪个有效)
function read(query, user, request)
{
var p = request.parameters;
var httpRequest = require('request');
var url = 'http://someURL/'+ p.ssoid;
httpRequest.get(url, function(err, response, body)
{
if (err)
{
request.respond(500, "INTERNAL SERVER ERROR");
}
else
{
request.respond(200,JSON.parse(body) );
}
});
}
邮政编码:(不起作用)
function insert(item, user, request)
{
var p = request.parameters;
require('request').post({
uri:'http://someURL/',
headers:{'content-type': 'application/json'},
body:p.body
},function(err,res,body){
if (err)
{
request.respond(500, "INTERNAL SERVER ERROR");
}
else
{
request.respond(200,"Success");
}
});
}
我知道POST需要一个带有帖子信息的主体,但是如何让它向前传递呢?
答案 0 :(得分:2)
在插入上,请求的主体将存储在item
参数中(假设您正在传递JSON对象)。所以你的功能看起来像这样:
function insert(item, user, request)
{
var p = request.parameters;
require('request').post({
uri : 'http://someURL/',
headers : {'Content-Type': 'application/json'},
body : item
}, function(err, res, body){
if (err)
{
request.respond(500, "INTERNAL SERVER ERROR");
}
else
{
request.respond(200,"Success");
}
});
}
在相关的说明中,如果您将移动服务用作简单的传递,您还可以考虑使用自定义API而不是表,您也可以在不使用任何(空)表的情况下应用逻辑背后。
答案 1 :(得分:0)
function insert(item, user, request)
{
var p = request.parameters;
require('request').post({
uri : 'http://someURL/',
headers : {'Content-Type': 'application/json'},
body : JSON.stringify(item)
}, function(err, res, body){
if (err)
{
request.respond(500, "INTERNAL SERVER ERROR");
}
else
{
request.respond(200,"Success");
}
});
}