Node.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

我不熟悉node和express js。我正在尝试创建一个简单的注册和登录页面。我面临一个挑战,即在显示成功警报消息后,我无法重定向回欢迎页面。这给我带来了一个错误

这是我的密码:

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');

    });