Api 获取触发修补程序请求的请求(express)

Api 获取触发修补程序请求的请求(express),api,express,Api,Express,在我的express服务器上,我有一个通过抓取来检索项目的脚本。我想偶尔触发这个脚本,并将检索到的项目推送到我的数据库中 我的第一个想法是在我的API中创建一个端点(例如/API/scrape项)。问题是,它将是一个GET请求,负责运行脚本、检索项目并修补项目(更新)我的数据库。让GET请求完成所有这些似乎都是不对的,尤其是对补丁请求,但我也不能将GET请求更改为POST请求,因为我没有正文 有人能帮我想出一个更好的方法吗?谢谢 更新:触发端点的示例: router.get('/scrape

在我的express服务器上,我有一个通过抓取来检索项目的脚本。我想偶尔触发这个脚本,并将检索到的项目推送到我的数据库中

我的第一个想法是在我的API中创建一个端点(例如/API/scrape项)。问题是,它将是一个GET请求,负责运行脚本、检索项目并修补项目(更新)我的数据库。让GET请求完成所有这些似乎都是不对的,尤其是对补丁请求,但我也不能将GET请求更改为POST请求,因为我没有正文

有人能帮我想出一个更好的方法吗?谢谢

更新:触发端点的示例:

router.get('/scrape items/',异步(req,res)=>{
试一试{
const resultFromScraping=等待[
{id:1,数据:'updated data'},
{id:2,数据:'updated data'}
]
等待承诺(
resultFromScraping.map(
异步项=>
等待axios补丁(
`/api/items/${item.id}`,
项目.数据
)
)
)
}捕捉(错误){
res.status(500).json({message:err.message})
}

})
将内容上载到数据库时,POST请求是完全可以接受的。补丁通常是为部分更新和更新项目时保留的。所以,如果您只是使用此请求更新数据库中的内容,那么请毫不犹豫地使用修补程序。如果您要完全替换数据库中的资源(或者您需要HTTP请求中的整个资源,而不仅仅是修改过的资源),那么我建议改用PUT


在这种情况下,如果您将数据返回给用户,GET请求也是可以接受的。

发布不需要正文request@NicholasSiegmundt我实际上使用的是补丁,它只适用于post吗?您认为post端点可以检索外部内容并更新数据库吗?它也适用于修补程序吗?修补程序通常用于部分更新资源。Post完全可以用于获取信息并将其添加到数据库中。我想说,如果您将信息返回给用户,Get甚至是可以接受的。@MattiaRasulo不会重构您的代码,使请求逻辑和刮取逻辑分离,然后使用适当的cronjob执行刮取部分?谢谢您的清理!