如何使用Express将数据传递到不同的路由?

时间:2019-06-24 02:24:50

标签: node.js mongodb express mongoose passport.js

我正在创建一个Web应用程序,要求用户注册/登录,一旦完成,他们就会被带到其“帐户页面”,在该页面上可以看到他们的帐户信息。

我正在使用MongoDB,Mongoose和Passport。

我有发布路线:

app.post("/", function(req, res){
  User.findOne({username: req.body.username}, function(err, foundUser){
    if(foundUser){
      //found user in database
       const user = new User({
    username: req.body.username,
    password: req.body.password
  });

  req.login(user, function(err){
    if(err){
      console.log(err);
    } else {
      passport.authenticate("local", function(err, user){
        if(err){
          console.log(err);
        } else {
          if(user){
            res.redirect("/user");
          } else {
            res.render("home", {failedAttempt: true});
          }
        }
      })(req, res);
    }
  });
    } else {
      //user does not exist
      console.log("the user does not exist here");
      res.render("home", {failedAttempt: true})
    }
  });
});

我希望能够将特定用户的数据库信息传递到“ / user”路由,但是我不知道如何。如何做到这一点,以便一旦将用户重定向到root / user之后,便可以在其数据库中提取信息了?

1 个答案:

答案 0 :(得分:0)

您可能想研究Express Middleware。这样一来,您可以先进行一些处理以提取用户信息,然后将结果数据传递到您的路线。

阅读全部内容: https://expressjs.com/en/guide/using-middleware.html