2017-07-06 33 views
0

我是一个新手Azure,并且我正尝试使用Azure函数进行HTTP触发NodeJS, 我已经有一个NoSQL数据库在Azure波斯菊。 例子:我如何更新宇宙Azure(NOSQL)中的数据,使用Azure功能与HTTP触发POST

{ 
 
    ... 
 
    "shop":{ 
 
     "fruits":[ 
 
     "orange", 
 
     "strawberry", 
 
     "lemon" 
 
     ], 
 
     "clothes":[ 
 
     "man", 
 
     "woman", 
 
     "babies" 
 
     ] 
 
    } 
 
    ... 
 
}

然后我想添加一个名为苹果新的水果放入水果阵列或删除婴儿衣服。还更新男人男人, 我该怎么办?我发现context.bindings。但我还不知道如何使用它, 有没有人可以帮助我?

非常感谢。

回答

1

这里是一个示例函数,它增加文档的num字段。

function.json

{ 
    "bindings": [ 
    { 
     "authLevel": "function", 
     "type": "httpTrigger", 
     "direction": "in", 
     "name": "req", 
     "route": "HttpTriggerJSUpdateDocument/{docid}" 
    }, 
    { 
     "type": "http", 
     "direction": "out", 
     "name": "res" 
    }, 
    { 
     "type": "documentDB", 
     "name": "inputDocument", 
     "databaseName": "MyDB", 
     "collectionName": "MyCollection", 
     "id": "{docid}", 
     "connection": "mydocdb_DOCUMENTDB", 
     "direction": "in" 
    }, 
    { 
     "type": "documentDB", 
     "name": "outputDocument", 
     "databaseName": "MyDB", 
     "collectionName": "MyCollection", 
     "createIfNotExists": false, 
     "connection": "mydocdb_DOCUMENTDB", 
     "direction": "out" 
    } 
    ], 
    "disabled": false 
} 

index.js

module.exports = function (context, req) { 
    let inputDocument = context.bindings.inputDocument; 
    context.log('JavaScript HTTP trigger, current value: ' + 
     (inputDocument && inputDocument.num)); 

    inputDocument.num = inputDocument.num + 1; 

    context.bindings.outputDocument = inputDocument; 

    context.res = { 
     body: 'Result is ' + inputDocument.num 
    }; 
    context.done(); 
}; 
+0

谢谢! @Mikkail – JViM

0
using System.Net; 

public static HttpResponseMessage Run(HttpRequestMessage req, out object taskDocument, TraceWriter log) 
{ 
    string name = req.GetQueryNameValuePairs() 
     .FirstOrDefault(q => string.Compare(q.Key, "name", true) == 0) 
     .Value; 

    string task = req.GetQueryNameValuePairs() 
     .FirstOrDefault(q => string.Compare(q.Key, "task", true) == 0) 
     .Value; 

    string duedate = req.GetQueryNameValuePairs() 
     .FirstOrDefault(q => string.Compare(q.Key, "duedate", true) == 0) 
     .Value; 

    taskDocument = new { 
     name = name, 
     duedate = duedate.ToString(), 
     task = task 
    }; 

    if (name != "" && task != "") { 
     return req.CreateResponse(HttpStatusCode.OK); 
    } 
    else { 
     return req.CreateResponse(HttpStatusCode.BadRequest); 
    } 
} 

和function.json

{ 
    "bindings": [ 
    { 
     "authLevel": "function", 
     "name": "req", 
     "type": "httpTrigger", 
     "direction": "in" 
    }, 
    { 
     "name": "$return", 
     "type": "http", 
     "direction": "out" 
    }, 
    { 
     "type": "documentDB", 
     "name": "taskDocument", 
     "databaseName": "taskDatabase", 
     "collectionName": "TaskCollection", 
     "createIfNotExists": true, 
     "connection": "DOCUMENTDB", 
     "direction": "out" 
    } 
    ], 
    "disabled": false 
} 

使用任务coresponding名代替。

相关问题