无法发布到Express路由器(404错误)

时间:2020-06-17 18:07:24

标签: javascript express post routes fetch

我无法将POST请求提取到我的Express路由器。我有许多GET请求都可以正常工作,但这是我的第一个POST请求,并且无法正常工作。

我的前端代码如下:

@Mapper
public interface ResposeMap {

    Loan toLoan(LoanDTO loanDTO);
}

}

响应始终为:

export async function postHamster(name, age) {
try {
    await fetch('/hamsters/api/new-hamster',
        {
            method: 'POST',
            headers: { "Content-Type": "application/json" },
            body: JSON.stringify({
                name: name,
                age: age
            })
        })
    console.log("postHamster has run") //LOGGED
}
catch (e) {
    console.error(e)
}

我已经对路径进行了三重检查,并且不会出错。后端路径是文件“ hamsters.js”中的“ router.get('api / new-hamster',async(req,res)...”)。

我还将后端函数放在其文件的最顶部,以确保它不会被文件中的任何其他函数所破坏。

这是我的server.js:

fetchData.js:38 POST http://localhost:3000/hamsters/api/new-hamster 404 (Not Found)

我看过这些线程:

Cannot GET/POST with express Router() Express.js routers post request returns 404 Express: router cannot read POST request

2 个答案:

答案 0 :(得分:1)

您是否已在控制台的“网络”标签中检查了要发布到的网址?我认为您需要在后端路由的api之前添加/:router.get('/ api / new-hamster',async(req,res)...“。

答案 1 :(得分:0)

你有这个:

server.use(bodyParser.urlencoded({ extended: true }));

取而代之的是:

server.use(bodyParser.urlencoded({ extended: false }));