【问题标题】:Page won't render even if it's called页面即使被调用也不会呈现
【发布时间】:2019-05-30 05:16:32
【问题描述】:

我想在 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: {} });
    }
  });
});

【问题讨论】:

  • 记录了任何错误?
  • @candybeer nope :(
  • 你能多说一下你的数据库吗,你用的是哪个数据库?
  • @candybeer mysql。但据我所知,这不应该影响代码的工作方式。查询执行成功
  • 是的,作为 db,我想说 wich orm...?

标签: node.js express server routing


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-10-24
    • 2017-03-24
    • 1970-01-01
    • 2011-07-27
    • 2013-04-23
    • 2019-03-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多