AZURE Mobile Service在表的插入脚本中转发POST请求

时间:2013-12-05 04:21:05

标签: node.js azure request http-post azure-mobile-services

我正在尝试使用Azure移动服务来处理/处理空数据表上的GET和POST请求。 (真的只是使用移动服务作为通过) 作为其中的一部分,我正在尝试将请求转发到另一个URL并收到响应并通过移动服务返回。我已经找到了下面显示的G​​ET部分,但我遇到了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需要一个带有帖子信息的主体,但是如何让它向前传递呢?

2 个答案:

答案 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"); 
        }
    });
}