javascript - 如何在 Express.js 中向客户端发送响应之后/时重定向到某个路由?
问题描述
我是 Express.JS 的初学者,在路由重定向方面遇到问题。我想要的只是向用户显示一条消息“您的数据已成功注册。”然后在一段时间后,我想再次将它们重定向到表单页面。但几乎没有错误。
这是一个代码,我在文本文件中写入数据,然后在显示消息后,我想重定向到 /form 路由。
router.use('/form',(req,res)=>{
console.log("form is loaded ");
res.sendFile(path.join(rootDir,'views','form.html'));
});
router.post('/submit',(req,res)=>{
const data=()=>{
const time=Date();
const firstName=req.body.firstName;
const lastName=req.body.LastName;
const email= req.body.email;
const address=req.body.address;
const state=req.body.state;
const phone= req.body.phone;
const pinCode= req.body.pinCode;
let data=time+"\n"+' Name ---> '+firstName+" "+lastName+'\n';
data+=' E-mail ---> '+email+'\n';
data+=' Phone ---> '+phone+'\n';
data+=' Address ---> '+address+'\n';
data+=' State ---> '+state+' - '+pinCode+'\n\n';
return data;
}
// console.log(firstName,lastName,email,phone,address,state,pinCode);
fs.appendFile(dbFile,data(),(error)=>{
console.log("Data added to database");
});
res.send('Your data is registered successfully.');
setInterval(()=>{res.redirect('/form');}, 3000);
});
在这种情况下,我收到以下错误:
throw new ERR_HTTP_HEADERS_SENT('set');
^
Error [ERR_HTTP_HEADERS_SENT]: **Cannot set headers after they are sent to the client**
at ServerResponse.setHeader (_http_outgoing.js:530:11)
at ServerResponse.header (/home/infogirdinformatics/Desktop/Nilesh/IG/Express.js/Day 15/Task 3/node_modules/express/lib/response.js:771:10)
请建议我任何方式或解决方案。感谢您的帮助和时间。
解决方案
发送响应后不能发送 HTTP 重定向,所以我可能会这样做:
res.send(`
<html>
<head>
<meta http-equiv="refresh" content="3;url=/form" />
</head>
<body>Your data is registered successfully.</body>
</html>
`);
并使用HTML 重定向
推荐阅读
- swift - 有没有一种优雅的方法来确定两个日期是否在 Swift 中被一年中的一周分开?
- spring - 多模块Maven项目中的应用程序上下文 - Spring
- javascript - 在 Django 中使用 javascript 删除禁用的属性
- html - 如何在伪提示(工具提示)中制作文本宽度?
- image - 在 Markdown 中对齐图像
- xml - 将 XML 转换为 SVG
- javascript - 如果文件系统上的 JavaScript 文件发生更改,节点进程是否受到保护?
- java - 我为 Rubymine 创建的插件不兼容
- python - Tensorflow 对象检测:ImportError: cannot import name 'inception_resnet_v2'
- json - 如何从数据库存储库中获取 JSON 格式的数据