javascript - NodeJS Express - GET/POST/PATCH/DELETE 幕后的区别

标签 javascript node.js api axios

.get().post().put().delete() 纯语义与 nodeJS 和表达? (在幕后,这些方法有什么不同吗?)

如果你正在设计一个 API,在一天结束时你只是发送一个 req 并等待一个 res payload

例如,如果您真的想要,可以使用 .get() 请求从数据库中删除内容吗?

或者接受 req.body 使用 .get() 请求?

使用 axios 的前端怎么样?

最佳答案

[答案来自一些高级开发人员,Andrew Studnicky 和 ​​Gavin Ray]

是的,您可以使用 get() 请求从数据库中删除项目

HTTP 动词是 GET/POST/PUT/PATCH/DELETE/OPTIONS。 您设计您的 API 以匹配请求的语义,但没有任何东西强制您这样做

我要指出的是,Axios(前端)特别针对可以进入请求类型的内容制定了一些规则,尤其是在改变 REST 规则时。例如,DELETE 可以技术上有一个请求主体(REST 白皮书没有指定它不能)——虽然不建议这样做,但一些 vendor (例如 auth0 ) 在 DELETE

上确实需要一个 requestBody

你应该注意 axios 会在发出请求之前去掉它,除非你执行一些变通逻辑

虽然理论上您可以在服务器获取数据后随心所欲地处理数据,但如果您坚持惯例,您的消费者和同事将会很感激。

社区指南作为设计智慧的集体贡献而存在,就像它们在语义中所做的一样。

关于javascript - NodeJS Express - GET/POST/PATCH/DELETE 幕后的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55773956/

相关文章:

javascript - 如何将WaveSurfer js导出为音频文件?

javascript - 使用 $.getJSON 方法获取 'undefined' 值

javascript - 单击复选框将内部表值复制到外部表

javascript - 如何在 d3.js 的多焦点强制布局中动态更新焦点

node.js - NodeJS - 带有空数据的流。怎么处理?

node.js - sails 中的多对多关系

node.js - 如何处理 PassportJS 端点错误

python - 通过 Python 连接到 Interactive Brokers API

对于需要来自 Azure sql 数据库的数据的端点,Azure api 在本地工作,但不能在 Azure 部署中工作。不过,具有硬编码数据的端点没问题

javascript - 如何从 PEG.js 解析器导出状态变量