2017-03-17 39 views
0

我有一些问题,在获取服务器响应后呈现帕格文件后,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.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响应(预览)网络部分中检查是好的。

+0

创建这样

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

登录功能问题是页面没有呈现?哪一页? – Aron

回答

0

当你打电话/login路由它是一个邮政调用,可能你正在使用ajax后调用这样做。 现在,当您调用/login路由时,其渲染pug文件 但它实际上并不影响浏览器DOM。所以,你需要做的就是这个

在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" 
    } 
    }); 
    } 
+0

感谢您的回答 –

0

您正在渲染views/login,但您已指定视图文件夹为views。只需渲染login

+0

我也试过了。但它不起作用 –