ı有错误 :发送后不能发送标题。从网址和浏览器redireck网址获取,但不得从home.html获取内容 我有错误 :发送后不能发送标题。从网址和浏览器redireck网址获取,但不得从home.html获取内容
var path = require('path');
var express = require('express');
var app = express();
var server = app.listen(80);
var io = require('socket.io').listen(server);
var session = require('express-session'); //session işlemleri
mongodb = require('mongodb'); //veritabanı işlemleri
var mongoclient = mongodb.MongoClient;
var bodyparser = require('body-parser'); //form submit için
var multer = require('multer'); //dosya yükleme
app.use("/style", express.static(__dirname + "/style"));
app.use("/images", express.static(__dirname + "/images"));
app.use("/scripts", express.static(__dirname + "/scripts"));
app.use(bodyparser.urlencoded({
'extended': 'true'
}));
app.use(bodyparser.json());
app.use(session({
'secret': 'hhhhh',
resave: true,
saveUninitialized: true
}));
//register
app.get("/register", function(req, res) {
if (req.session.userid) {
res.redirect("/home")
};
res.sendFile(__dirname + "/register.html");
});
//register
//register post
app.post("/register", function(req, res) {
var reguserame = req.body['username'].trim();
var regpassword = req.body['password'].trim();
mongoclient.connect("mongodb://127.0.0.1/deneme", function(err, db) {
if (err) {
res.sendStatus("veritabanı ile ilgili bir hatta algılandı");
} else {
var users = db.collection("users");
users.count({
"name": reguserame
}, function(err, count) {
if (count == 1) {
res.send("bu kullanıcı adı daha önce alınmış");
res.end();
} else {
var kayit = db.collection("users").insert({
"name": reguserame,
"pass": regpassword
});
if (kayit) {
res.send('kayıt basarılı <a href="/login">giriş yap</a>');
} else {
res.send("kayit basarısız");
}
res.end();
}
});
}
});
});
//register post
//logout
app.get("/logout", function(req, res) {
req.session.destroy();
res.redirect("/login");
});
//logout
app.get("/login", function(req, res) {
if (req.session.userid) {
res.redirect("/home");
}
res.sendFile(__dirname + "/login.html");
});
//login kontrol
app.post("/login", function(req, res) {
var username = req.body['username'].trim();
var password = req.body['password'].trim();
mongoclient.connect("mongodb://127.0.0.1:27017/deneme", function(err, db) {
db.collection("users").find({
"name": username,
"pass": password
}).toArray(function(err, result) {
var sayisi = result.length;
///uye kontrol
if (sayisi == 1) {
res.status(200);
req.session.userid = result[0]._id;
res.redirect("/home");
} else {
res.sendStatus("hatalı parola");
res.end();
}
db.close();
//uye kontrol
});
});
});
//home sayfası
app.get("/home", function(req, res) {
if (req.session.userid) {
res.sendFile(path.join(__dirname + "/home.html"));
res.end();
} else {
res.send("henüz giriş yapılmamış");
res.end();
}
});
//login kontrol
app.use(function(req, res) {
res.status("404");
res.write("<div style='height:100%; top:0px; left:0px; position:absolute; text-align: center; vertical-align: center; width:100%; background: #eee;'><h1 style='border:1px solid #999; color:#f63; margin-top:20%;'>sayfa yok</h1></div>");
res.end();
});
res.redicert("/home") this row by ı get error
> Blockquote
///请
答案 0 :(得分:1)
在此部分代码中,它正在发送状态200
,重定向要发送状态302
:
res.status(200);
req.session.userid=result[0]._id;
res.redirect("/home");
无法发送状态302
,因为它已发送状态200
。请尝试删除res.status(200)
。
还有其他类似的问题:
if(req.session.userid){ res.redirect("/home");}
res.sendFile(__dirname+"/login.html");
在return
或redirect()
部分需要进入sendFile()
区块之后,它需要else
。 redirect()正在发送302
,然后sendFile()
执行,并希望发送200
。
答案 1 :(得分:0)
不确定这是否是你的所有问题,但你有拼写错误
bool b1 = new PersonComparer().Equals(x, y);