如何区分GET和POST

时间:2018-03-10 18:41:35

标签: express

我正在使用express编写一个简单的api进行培训。这是我的测试代码:

var express = require('express');
var app = express();
app.post("/api/:var_name", function(req, res) {
    res.send(req.params.var_name);
});

只是测试以查看POST是否有效。当我致电http://localhost:3000/api/1时,我得到Cannot GET /api/1,因此服务器显然将POST请求解释为GET,我需要做些什么来调用POST来代替?

2 个答案:

答案 0 :(得分:1)

您在浏览器地址栏中调用的任何内容都将通过get发送。这是因为post-messages(以及几乎所有其他方法)确实有一个body-part。但是,您的浏览器无法在http数据包的正文中发送其他信息。

如果您想测试GET以外的任何方法的路线,我建议您下载像邮差一样的工具。

https://www.getpostman.com/

当心:这是我的偏好。你也可以诅咒使用像curl这样的基于文本的浏览器来测试它。

答案 1 :(得分:0)

服务器根据您在HTTP请求中设置的动词解释请求。如果没有指定方法/动词,则将其解释为GET(不确定此部分)。

当您调用该URL时,您也需要使用该方法。例如,如果您使用fetch API,则可以将其命名为:

fetch(url, {method:"POST"})

如果您在浏览器中输入该内容并希望将其解释为发布请求,则不然。所有浏览器网址请求都是GET。使用像Postman这样的工具来调用不同的HTTP动词。在创建此类API时,它非常有用。

您可以查看此答案,详细了解如何在帖子请求中添加正文和标题:Fetch: POST json data