Azure移动应用程序对SQL表的CRUD操作(node.js后端)

时间:2016-03-14 21:36:12

标签: node.js azure azure-mobile-services

这是我在这里的第一篇文章,所以如果我的格式有点偏离请不要生气;-) 我正在尝试使用Azure移动应用程序和node.js为服务器端脚本开发后端解决方案。这是一个陡峭的曲线,因为我是来自嵌入式世界的javaScript和node.js的新手。我所做的是一个自定义API,可以将用户添加到MSSQL表,使用表对象正常工作。但是,我还需要能够从同一个表中删除用户。我添加用户的代码是:

var userTable = req.azureMobile.tables('MyfUserInfo');
item.id = uuid.v4();

userTable.insert(item).then( function (){
    console.log("inserted data");
    res.status(200).send(item);
});

有效。 Azure node.js文档确实不是很好,我一直在寻找如何做简单事情的好例子。非常讨厌和耗时。 关于删除操作的SDK文档说它的工作方式与read相同,但事实并非如此。或者我像湿门一样愚蠢。我的删除代码看起来像这样 - 它会导致异常

query = queries.create('MyfUserInfo')
        .where({ id: results[i].id });

userTable.delete(query).then( function(delet){
console.log("deleted id ", delet);
});

我也试过这个并没有成功

userTable.where({ id: item.id }).read()
        .then( function(results) {
        if (results.length > 0) 
        {
            for (var i = 0; i < results.length; i++)
            {
                userTable.delete(results[i].id);
                });
            }
        }

有人可以指出我正确的语法方向,并解释为什么在这里做基本的东西这么困难;-)似乎有很多方法做同样的事情,这真的困惑我。 非常感谢 马丁

2 个答案:

答案 0 :(得分:2)

您可以在api中发出SQL

var api = {
get: (request, response, next) => {
    var query = {
        sql: 'UPDATE TodoItem SET complete=@completed',
        parameters: [
            { name: 'completed', value: request.params.completed }
        ]
    };

    request.azureMobile.data.execute(query)
    .then(function (results) {
        response.json(results);
    });
}};
module.exports = api;

这是他们在GitHub上的样本 以下是samples的完整列表,可以查看

答案 1 :(得分:1)

为什么要为表执行自定义API?只需在tables目录中定义表并添加任何自定义授权/身份验证。