Node.js 重定向到不同的页面
我不熟悉node和express js。我正在尝试创建一个简单的注册和登录页面。我面临一个挑战,即在显示成功警报消息后,我无法重定向回欢迎页面。这给我带来了一个错误 这是我的密码:Node.js 重定向到不同的页面,node.js,express,Node.js,Express,我不熟悉node和express js。我正在尝试创建一个简单的注册和登录页面。我面临一个挑战,即在显示成功警报消息后,我无法重定向回欢迎页面。这给我带来了一个错误 这是我的密码: let express = require("express"); let app = express(); let redirect = require("express-redirect"); redirect(app); let urlobj = "mongod
let express = require("express");
let app = express();
let redirect = require("express-redirect");
redirect(app);
let urlobj = "mongodb://localhost:27017/";
let formidable = require("formidable");
let mongoclient = require("mongodb").MongoClient
app.use(express.static('public'));
app.get("/welcome",function(req,res){
res.writeHead(200, {'Content-Type': 'text/html'});
res.write("<html><head> <link rel='stylesheet' type='text/css' href='/css/style.css'></head>");
res.write("<body class='homepage'>");
res.write("<form method='post' action='signup'>");
res.write("<button class='signup'>SIGN UP</button></form>");
res.write("<form method='post' action='login'>");
res.write("<button class='login'>LOGIN</button></form>");
res.write("</body></html>");
});
app.post("/signup",function(req,res){
res.writeHead(200, {'Content-Type': 'text/html'});
res.write("<html><head> <link rel='stylesheet' type='text/css' href='/css/style.css'></head>");
res.write("<body class='homepage'>");
res.write("<form method='post' action='register'>");
res.write("<label style='top:80px'>Enter Your Name</label>")
res.write("<input style='top:100px' type='text' required placeholder='Enter Name' name='name'><br>
<br>");
res.write("<label style='top:150px'>Enter Your Email</label>")
res.write("<input style='top:170px' type='email' required placeholder='Enter Email' name='email'><br>
<br>");
res.write("<label style='top:220px'>Enter Your Contact</label>")
res.write("<input style='top:240px' type='number' pattern='[7-9]{1}[0-9]{9}' required
placeholder='Enter Contact' name='contact'><br><br>");
res.write("<label style='top:290px'>Enter Your Address</label>")
res.write("<input style='top:310px' type='text' required placeholder='Enter Address' name='addr'><br>
<br>");
res.write("<button class='register' style='top:360px' href='/welcome'>REGISTER</button>");
res.write("</form></body></html>");
});
app.post("/register",function(req,res){
mongoclient.connect(urlobj,{ useUnifiedTopology: true },function(err,db){
if(err)
res.write(err);
else
{
let dataobj = db.db("mydatabase");
let form=formidable.IncomingForm();
form.parse(
req, function(err, fields, files){
let docobj={
name:fields.name,
email:fields.email,
contact:fields.contact,
address:fields.addr
};
dataobj.collection("Student").insertOne(docobj,function(err,data){
if(err)
res.write("Something went Wrong: "+err);
else
{
res.send("<script>alert('Resgistered Successfully! Please Login')</script>");
return res.redirect("/welcome");
db.close();
}
});
});
}
});
});
app.listen(3030);
let express=require(“express”);
设app=express();
let redirect=require(“快速重定向”);
重定向(app);
让urlobj=”mongodb://localhost:27017/";
让强大=需要(“强大”);
让mongoclient=require(“mongodb”)。mongoclient
应用程序使用(express.static('public'));
app.get(“/welcome”,函数(req,res){
res.writeHead(200,{'Content-Type':'text/html'});
res.write(“”);
res.write(“”);
res.write(“”);
res.write(“注册”);
res.write(“”);
res.write(“登录”);
res.write(“”);
});
应用程序发布(“/注册”,功能(请求、回复){
res.writeHead(200,{'Content-Type':'text/html'});
res.write(“”);
res.write(“”);
res.write(“”);
res.write(“输入您的姓名”)
res.write(“
”;
res.write(“输入您的电子邮件”)
res.write(“
”;
res.write(“输入您的联系人”)
res.write(“
”);
res.write(“输入您的地址”)
res.write(“
”;
res.write(“登记簿”);
res.write(“”);
});
应用程序post(“/寄存器”,功能(请求,恢复){
connect(urlobj,{useUnifiedTopology:true},函数(err,db){
如果(错误)
res.write(err);
其他的
{
让dataobj=db.db(“mydatabase”);
let form=可怕的。IncomingForm();
form.parse(
请求,函数(错误,字段,文件){
让docobj={
name:fields.name,
电子邮件:fields.email,
联系人:fields.contact,
地址:fields.addr
};
数据对象集合(“学生”).insertOne(文档对象,函数(错误,数据){
如果(错误)
res.write(“出了问题:+err”);
其他的
{
res.send(“警报(‘重新注册成功!请登录’));
return res.redirect(“/welcome”);
db.close();
}
});
});
}
});
});
app.listen(3030);
以下是错误:
错误[ERR\u HTTP\u HEADERS\u SENT]:发送到客户端后无法设置头
在ServerResponse.setHeader(_http_outgoing.js:558:11)
在ServerResponse.header(C:\Users\Ibrahim Bharmal\desktop\nodejs\node\u modules\express\lib\response.js:771:10)
在ServerResponse.location(C:\Users\Ibrahim Bharmal\desktop\nodejs\node\u modules\express\lib\response.js:888:15)
在ServerResponse.redirect(C:\Users\Ibrahim Bharmal\desktop\nodejs\node\u modules\express\lib\response.js:926:18)
在C:\Users\Ibrahim Bharmal\desktop\nodejs\project\trialproject.js:57:13
在executeCallback(C:\Users\Ibrahim Bharmal\desktop\nodejs\node\u modules\mongodb\lib\operations\execute\u operation.js:70:5)
在C:\Users\Ibrahim Bharmal\desktop\nodejs\node\u modules\mongodb\lib\operations\insert\u one.js:34:21
在handleCallback(C:\Users\Ibrahim Bharmal\desktop\nodejs\node\u modules\mongodb\lib\utils.js:102:55)
在C:\Users\Ibrahim Bharmal\desktop\nodejs\node\u modules\mongodb\lib\operations\common\u functions.js:262:5
at处理程序(C:\Users\Ibrahim Bharmal\desktop\nodejs\node\u modules\mongodb\lib\core\sdam\topology.js:943:24){
代码:“ERR\u HTTP\u HEADERS\u SENT”
}
请有人告诉我这一点好吗?在重定向之前删除return关键字,正如您在错误中提到的,在发送到客户端之后,您不能设置头 在代码中
else
{
res.send("
<script>alert('Resgistered Successfully! Please Login')</script>
"); // you send response to client
return res.redirect("/welcome"); // and than you again send response to client that's why error occur
db.close();
}
欢迎光临
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.js"></script> // include it in header
$(document).ready(function(){
alert('<%: TempData["Resultat"]%>');
});
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.js"></script> // include it in header
$(document).ready(function(){
alert('<%: TempData["Resultat"]%>');
});
app.get('/welcome', function(req, res) {
var passedVariable = req.query.valid;
(passedVaribale == true)
? console.log('this is true') : console.log('do something');
});