gpt4 book ai didi

javascript - 允许 mlab 中的 RESTful DELETE 方法

转载 作者:行者123 更新时间:2023-12-03 01:29:47 25 4
gpt4 key购买 nike

如何为 mlab 设置“访问控制允许方法”

使用其 RESTful api 时,它不允许使用 delete 方法。其 documentation 上没有任何说明

var d = new Date()
d.setHours(0,0,0,0)
var yMidnight = d.getTime() - 24 * 1000 * 3600

fetch(url('photo', JSON.stringify({ date: { $lt: yMidnight } })) + '&m=true'), {
method: 'delete',
headers: {
'Content-type': 'application/json;charset=utf-8'
}
})
.then(() => {
console.log('success')
})
.catch(err => {
console.log(err)
})

function url(collection, q) {
if (q) {
return `${host}${collection}?apiKey=${apiKey}&q=${q}`
}
return `${host}${collection}?apiKey=${apiKey}`
}

最佳答案

删除单个和多个文档的方式与 API 不同。 DELETE 方法仅在您对单个文档资源进行操作时才有效。所以你可以提出这样的请求:

DELETE /databases/{database}/collections/{collection}/{_id}

这将删除 URL 中指定的 _id 的文档。但是,即使使用 q 查询参数返回,/databases/{database}/collections/{collection} 端点也无法选择使用 DELETE 请求文件。

要使用 q 查询参数删除集合中的多个文档,您必须使用 PUT 请求。请参阅此处的文档:https://docs.mlab.com/data-api/#delete-documents

所以你的获取方法应该如下所示:

fetch(url('photo', JSON.stringify({ date: { $lt: yMidnight } })) + '&m=true'), {
method: 'put',
data: JSON.stringify([]),
headers: {
'Content-type': 'application/json;charset=utf-8'
}
})

这会将所有与 q 查询参数匹配的文档替换为空列表,即删除它们。

关于javascript - 允许 mlab 中的 RESTful DELETE 方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51357973/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com