Javascript express中的render.pug文件后视图不会更改
我有一个问题,html视图在呈现pug文件后,在获得服务器响应后不会更改 代码如下Javascript express中的render.pug文件后视图不会更改,javascript,express,pug,Javascript,Express,Pug,我有一个问题,html视图在呈现pug文件后,在获得服务器响应后不会更改 代码如下 app.set('view engine', 'pug'); app.set("views", require('path').join(__dirname, "views")); app.post('/login', function(req, res, next) { console.log(req.body); checkExistanceOfuser(req.body.username, req.bo
app.set('view engine', 'pug');
app.set("views", require('path').join(__dirname, "views"));
app.post('/login', function(req, res, next) {
console.log(req.body);
checkExistanceOfuser(req.body.username, req.body.password, function(err, flag, data) {
console.log(err);
if (err) {
res.send({
err: 'SOME_DATABASE_ERROR'
})
} else {
if (flag) {
req.session.user = data;
/*res.send({
success: true,
message: 'Login Success'
})*/
res.render('welcome', { name: data.name });
} else {
/*res.send({
success: false,
message: 'Invalid Credentials'
});*/
res.render('login', { error: 'Invalid Credentials' });
}
}
})
但我在浏览器中查看网络部分。API响应(预览)很好 您正在呈现
视图/登录
,但已指定视图文件夹为视图
。当您调用/login
路由时,只需呈现登录即可,这是一个post调用,您可能正在使用ajax post调用来完成此操作。
现在,当您调用/login
时,将其渲染路由到pug
文件
但它实际上并不影响浏览器DOM。所以你需要做的是
像这样创建一条新路线
app.get('/login-success', function(req, res, next) {
if (req.session && req.session.user) {
res.render('welcome', { name: req.session.user.name });
} else {
res.redirect('/');
}
});
然后像这样修改登录函数
app.post('/login', function(req, res, next) {
console.log(req.body);
checkExistanceOfuser(req.body.username, req.body.password, function(err, flag, data) {
console.log(err);
if (err) {
res.send({
err: 'SOME_DATABASE_ERROR'
})
} else {
if (flag) {
req.session.user = data;
res.send({
success: true,
message: 'Login Success'
});
} else {
res.send({
success: false,
message: 'Invalid Credentials'
});
}
}
})
});
在ajax调用中,使用以下命令
function login(){
$.post("http://localhost:8000/login",
{
username:document.getElementById("name").value,
password:document.getElementById("password").value,
},
function(data, status){
if(data.success){
window.location = "http://localhost:8000/login-success"
}
});
}
问题是页面没有呈现吗?哪一页?谢谢你的回答