当前位置: 首页 > 知识库问答 >
问题:

POST vs PUT(express.js)

夏侯弘光
2023-03-14

我知道PUT和POST之间的主要区别是幂等性,但我想在实际的层面上理解它。

例如,假设我必须处理用户更改用户名的请求

有哪些不同之处:

    router.post('/changeusername',(req,res)=>{
     let new_username = req.body.username;
     //some stuff here...
    });

而且

    router.put('/changeusername',(req,res)=>{
     let new_username = req.body.username;
     //some stuff here...
    });

你会用哪一个?

共有1个答案

孟鹤龄
2023-03-14

POST用于“创建”请求,而PUT用于“更新”请求。从功能上讲,它们是相同的,但是添加到这些请求中的代码应该反映请求类型

在本例中,您正在更新数据,因此应该使用PUT/PATCH请求

如果您要添加新用户,这应该始终是一个POST请求

这些遵循REST体系结构,进一步的阅读可以在这里找到

 类似资料:
  • 问题内容: 我想用一些登录用户创建一个Django应用程序。另一方面,由于我需要一些实时功能,因此我想使用Express.js应用程序。 现在,问题是,我不希望未经身份验证的用户访问Express.js应用程序的数据。因此,我必须在Express.js和Django应用程序之间共享会话存储。 我认为使用Redis是个好主意,因为volatile键非常适合这种情况,而且我已经在应用程序的另一部分使用

  • 问题内容: 我是Node.js的学习者。 什么是Express.js? Node.js的目的是什么? 为什么我们实际上需要Express.js?与Node.js一起使用对我们有用吗? 什么是Redis?Express.js附带吗? 问题答案: 这过于简化了,但是Express.js对Node.js来说就像Ruby on Rails 或Sinatra对Ruby一样。 Express 3.x是一种轻量

  • 问题内容: 我正在写一个可以设置标题的库。如果标题已经发送,我想给出一个自定义错误消息,而不是让它失败并显示Node.js给出的“发送后无法设置标题”消息。那么如何检查标头是否已经发送? 问题答案: 编辑:从Express 4.x开始,您需要使用res.headersSent。 还要注意,您可能要在检查之前使用setTimeout,因为在调用res.send()之后,它不会立即设置为true。资源

  • 问题内容: 我正在使用,并且有一条路线可以上传需要调整大小的图像。目前,我只是将文件写入磁盘(我认为是在幕后使用),然后使用(http://aheckmann.github.com/gm/)调整大小,这会将第二个版本写入磁盘。 我读过您可以在文件流写入磁盘之前获得文件流的所有权,并且由于可以接受流而不是路径,因此我应该能够通过消除对磁盘的双重写入来传递此权限。 我认为我需要重写,但是我不确定在哪里

  • 问题内容: 我必须将数据(json对象)发送到另一个Web服务器(java)。 这是我的node.js代码 这是行不通的。我怎样才能做到这一点? 问题答案: 您正在重复请求,并为发布请求重新分配变量。我已经更新了您的代码并与requestb.in一起对其进行了测试 请将请求主机和代码中的路径更新为所需的值。让我知道它是否仍然对您不起作用。

  • 问题内容: 我想使用Express.js将Jade模板的局部视图呈现给变量。 通常,您直接将局部视图呈现给响应对象: 但是,由于我在Socket.io服务器事件中,因此没有“响应”对象。 有没有一种优雅的方法可以在 不 使用响应对象的 情况下 将Jade部分视图呈现给变量? 问题答案: 您可以手动编译Jade模板。

  • 问题内容: 在将文档保存到数据库后,我试图停止发布请求,即: 目前,我只是简单地使用哪个起作用,但是页面刷新是完全任意的,我希望它不会发生。我去了,但是那把客户带到了空白页。 提前致谢。 编辑: 我认为我在对不起我做事时不够清楚。 也许是不好的做法,但这正在发生: POST启动数据库保存功能 浏览器坐在附近等待响应 准备就绪后,将obj保存到数据库,然后回调触发一个 NowJS 函数,该函数将项目

  • 问题内容: 我有一个棘手的情况:我正在构建一个完整的流星功能的应用程序。但是出于自动化原因,我还需要将某些功能公开为REST服务(第三方应用程序应该能够通过REST插入和接收数据)。 express.js-package似乎是将REST- Endpoint构建到node.js环境中的一个非常可靠的选择,但是我想知道如何将该终结点集成到流星中。 我想要的是例如通过来访问“常规”站点,同时又能够通过来