在node.js中处理post请求时出现问题



在node.js中处理post请求时出现问题,并显示错误:Cannot post/index.html由于body解析器已被弃用,因此我遇到了这个错误

const express = require("express");
const app = express();
app.use(express.json({ limit: '50mb' }));
app.get("/", function(req, res){
res.sendFile(__dirname+"/index.html");
});
app.post("/", function(req, res){
var num1 = Number(req.body.num1);
var num2 = Number(req.body.num2);
var result = num1+num2;
res.send(String(result));
});
app.listen(3000, function(){
console.log("Server is running on port 3000");
});
<!DOCTYPE html>
<html lang="en" dir="ltr">
<head>
<meta charset="utf-8">
<title></title>
</head>
<body>
<h1>Calculator</h1>
<form action="index.html" method="post">
<input type="text" name="num1" placeholder="First Number">
<input type="text" name="num2" placeholder="Second Number">
<button type="submit" name="submit">Calculate</button>
</form>
</body>
</html>

我不明白。你对这些代码片段有什么要求?

由于body解析器已被弃用,我被这个错误卡住了

body-parser现在是Express的一部分,您只需编写即可获得

app.use(express.urlencoded({ extended: false }));

错误:无法POST/index.html

Express抛出此错误的原因是,您没有匹配的POST路由。相反,您有POST/路由。我建议您将<form>的操作更新为/,而不是index.html

<form action="/" method="post">
<input type="text" name="num1" placeholder="First Number" />
<input type="text" name="num2" placeholder="Second Number" />
<button type="submit" name="submit">Calculate</button>
</form>

最新更新