Azure HTTP Trigger:CosmosDB输入绑定下如何获取查询参数实际值
解决方法
要获取URL查询参数中的真实id值,你不需要从Cosmos DB输入绑定的配置对象里提取,直接从HTTP请求对象中获取即可:
如果你的函数是HTTP触发类型,函数参数列表里会包含
req请求对象,通过req.query.id就能拿到URL中的id参数值,示例代码如下:module.exports = async function (context, req) { // 直接获取URL查询参数里的真实id值 const actualId = req.query.id; const partitionKeyValue = req.query.partitionKeyValue; // 可用于日志记录等场景 context.log(`URL传入的id参数:${actualId}`); // 获取Cosmos DB绑定返回的实际文档 const toDoItem = context.extraInputs.get(cosmosInput); // 若绑定配置正确,toDoItem.id会是URL中的真实值172 };你之前通过
context.extraInputs.get(cosmosInput)拿到的是绑定的配置模板对象,而非请求参数或查询到的文档内容,所以里面的id会保留占位符{id},这属于正常情况。真正的Cosmos DB查询结果是toDoItem,配置无误的话,它的id字段就是URL传入的真实值。
另外注意:在Node.js v4模型中,Cosmos DB输入绑定的集合名称参数是containerName,你当前代码里写的collectionName: 'Items'建议改为containerName: 'Items',避免配置不生效。
内容的提问来源于stack exchange,提问作者Kris Swat
相关产品推荐
相关产品推荐

