我最近开始学习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()
方法,否则您的浏览器将在那里等待!