如何从Node.js将项目发布到Azure SQL Easy表

时间:2016-10-24 12:55:38

标签: node.js azure azure-sql-database azure-web-app-service

我正在尝试从本地node.js应用程序(不在Azure上运行)中访问已连接到Azure应用服务的Azure SQL表。

我在查询表方面取得了进展 - 我可以获得已连接到App Service的任何表的全部内容,我甚至可以对该数据应用odata过滤器。例如:

var request = require("request");

request({
    method:'GET',
    url:"https://my-service.azure-mobile.net/tables/TodoItem?$filter=complete eq true"
},(err,res,body)=>{
    console.log(body);
});

所以从表中请求数据现在就可以了。但是,在this information之后,我开始相信我也可以发布新项目。我尝试了很多方法,根本无法找到如何将新记录添加到表中。这是我尝试过的东西:

request({
    method:'POST',
    url:"https://my-service.azure-mobile.net/tables/TodoItem",
    json: true,
    body: JSON.stringify({
        text: 'I just posted this',
        date: new Date(),
        complete: false
    })
},(err,res,body)=>{
    console.log(body);
});

这给了我一个'无效的JSON'回复。

那么对插入项目到Easy Table的POST请求的正确方法是什么?我还想知道如何更新记录以及PATCH

1 个答案:

答案 0 :(得分:4)

找到答案here

使用request.post()代替request({method:'POST',...})

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