首页 > 解决方案 > 即使调用页面也不会呈现

问题描述

我想在 node express 中做一个登录页面。检查密码和用户名后,页面请求下一页的信息,但页面没有加载。

通过发布请求,我将密码和用户名发送到服务器并检查:

 router.post('/',function(req, res, next) {
  dbs.executeQuery("select Id from Admin where username=\"" +username+"\" 
  and password=\""+password+"\"",
  (err,data)=>{
    if (!err &&  data.length != 0){ 
        req.method = "GET";
        req.url = "/menu";
        router.handle(req,res,next);
    }
    else{
        console.log("error");
  })
 }) 

这里将执行查询,但不会呈现 index.ejs:

router.get("/menu", function(req, res, next) {
  dbs.executeQuery("select * from Menu", (err, data) => {
    if (!err) {
      obj = { print: data };
      res.render("index", obj);
    } else {
      console.log("Cant find data");
      res.render("index", { print: {} });
    }
  });
});

标签: node.jsexpressserverrouting

解决方案


也许您应该尝试使用重定向方法:

 router.post('/',function(req, res, next) {
  dbs.executeQuery("select Id from Admin where username=\"" +username+"\" 
  and password=\""+password+"\"",
  (err,data)=>{
    if (!err &&  data.length != 0){ 
        res.redirect('/menu');           // <---- HERE
    }
    else{
        console.log("error");
  })
 }) 

推荐阅读