【问题标题】:how can I render(redirect) child jade file?如何渲染(重定向)子玉文件?
【发布时间】:2016-04-27 17:43:39
【问题描述】:

我正在使用 express 和 mongodb 制作用户登录 Web 应用程序。我的项目结构是这样的,

project
   |-app.js
   |-models (contain mongoose model)
   |-controllers
   |      | - user.controller.js
   |- views
   |    | - layout.jade
   |    | - index.jade
   |    | - signup.jade

我的 app.js 只是用于监听服务器、依赖项和路由。 app.js 中的简单代码是,

//app.js
app.get('/', function(req,res){
  res.render('index');
});
app.post('/signup', function(req,res){
  res.render('signup');
});
app.post('/', controller.register);

这是我的 user.controller.js 文件,

//user.controller.js
exports.register = function(req,res){
  var newUser = new User();

  newUser.username = req.body.username;
  newUser.email = req.body.email;
  newUser.password = req.body.password;

  newUser.save(function(err, user){
    if(err){
      console.log(err.message);
      console.log(err.errors.username.message);
      res.send('error registering user');
    } else{
      console.log(user);
      res.redirect('/signup');
    }
  });
};

signup.jade 和 index.jade 是 layout.jade 文件的子文件。 layout.jade 有导航栏和其他简单的东西。 Index.jade 具有用户可以输入其用户 ID、密码和密码确认的实际形式。我正在尝试做的是,在用户单击 index.jade 中的按钮后,用户将转到重定向 signup 页面并查看 you successfully signup!

index.jade 和 signup.jade 开始,

extend layout

block content
  div
    ...

我认为我的代码可以工作,如果它们是单独的玉文件,正如有人在这里解释的那样 Express, Jade, & NodeJS: Navigate between pages 。但我对这种方式没有任何运气。任何人都可以帮忙吗? 谢谢!

【问题讨论】:

    标签: express pug


    【解决方案1】:

    我想我有点想通了

    //user.controller.js
    exports.register = function(req,res){
      var newUser = new User();
    
      newUser.username = req.body.username;
      newUser.email = req.body.email;
      newUser.password = req.body.password;
    
      newUser.save(function(err, user){
        if(err){
          console.log(err.message);
          console.log(err.errors.username.message);
          res.send('error registering user');
        } else{
          console.log(user);
          res.redirect('/signup');
        }
      });
    

    在这个文件中,我选择了res.redirect('/signup');。我把这个改成res.render('signup')' };

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-11-14
      • 2020-02-13
      • 1970-01-01
      • 2013-08-15
      • 2015-11-02
      • 1970-01-01
      相关资源
      最近更新 更多