Node Express服务器在加载时卡住



我最近开始学习node.js,在这里发现问题有点困难。我做了一个快速应用程序,当按下网页上的按钮时,console.log会注销一个字符串,但当我按下网页上按钮时,它会开始重新加载,并且从未停止。这是我的代码:

var express = require("express");
var app = express();
var port = 42069;
app.use(express.urlencoded({extended:true}));
app.get("/", (req, res)=>{
res.sendFile(__dirname + "/index.html");
});
app.post("/", (req, res)=>{
console.log("Button pressed!");
});
app.listen(port, ()=>{
console.log(`Running on port ${port}`);
});

希望你们能帮忙!:(

这是您的get处理程序:

app.get("/", (req, res)=>{
res.sendFile(__dirname + "/index.html");
});

当它收到请求时,它会使用响应发送文件。

这是你的帖子处理程序:

app.post("/", (req, res)=>{
console.log("Button pressed!");
});

当它收到请求时,它会登录到控制台,不做任何其他事情。

你不会发送任何回复。

浏览器永远不会停止重新加载,因为你永远不会向它发送它正在等待的响应。

你需要用适合请求的东西来回应。

您所说的正是基于您的代码应该发生的事情。当您按下网页上的按钮时,代码会指定它只在控制台中记录一些内容。如果你想让它记录一些东西,然后重新呈现页面,请这样做:

app.post("/", (req, res)=>{
console.log("Button pressed!");
res.sendFile(__dirname + "/index.html");
});

正如下面的评论所说,请点击!这是一个常见的错误,调试起来令人困惑。如果您有一个类似于post()处理程序的处理程序,您必须调用next()或调用某个res.whatever()方法,否则您的浏览器将在那里等待!

最新更新