Express 如何区分GET和POST

Express 如何区分GET和POST,express,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/1I get无法获取/api/1,因此服务器显然

我正在使用
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
I get
无法获取/api/1
,因此服务器显然将
POST
请求解释为
get
,我需要做什么来调用
POST

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

当您调用该URL时,还需要使用该方法。例如,如果您使用fetch API,则可以如下方式调用它:

fetch(url, {method:"POST"})
如果您在浏览器中输入它,并希望它被解释为post请求,则它不是。获取所有浏览器url请求。使用Postman之类的工具调用不同的HTTP谓词。它在创建这样的API时非常有用


您可以查看有关如何向post请求添加正文和标题的详细信息的回答:

您在浏览器地址栏中调用的任何内容都将通过get发送。这是因为post消息(以及几乎所有其他方法)确实有一个主体部分。但是您的浏览器无法在http数据包的主体内发送附加信息

如果你想用GET以外的方法来测试你的路线,我建议你下载一个像postman这样的工具


注意:这是我的偏好。您还可以使用基于文本的浏览器(如curl)对其进行测试。

浏览器URL栏中键入的所有URL都是GET请求。要发布帖子,您需要提交一个HTML表单(完全可以通过HTML中的submit按钮完成),或者可以使用Javascript发送帖子请求。您通常还需要格式化和发送POST数据。