我正在尝试使用Azure移动服务来处理/处理空数据表上的GET和POST请求。 (实际上只是将移动服务用作传递)
作为此过程的一部分,我试图将请求转发到另一个URL,并接收回响应,并通过移动服务将其返回。我已经弄清楚了下面显示的G​​ET部分,但是在POST部分遇到了麻烦。

GET部分:(哪个作品)

    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需要带有发布信息的正文,但是如何使它向前传递?

最佳答案

在插入时,请求的主体将存储在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而不是表,在该表中还可以应用逻辑,而无需在表后面添加任何(空)表。

关于node.js - 表的插入脚本中的AZURE移动服务转发POST请求,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/20391368/

10-12 06:58