我正在尝试从本地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
答案 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");
}
});
}