代码之家  ›  专栏  ›  技术社区  ›  Seol

将值传递到EJS文件

  •  0
  • Seol  · 技术社区  · 7 年前

    我试图将一个值从一个post路由传递到一个EJS文件并显示它。我尝试了重定向、发送和呈现结果,但它不会传递到EJS文件。

    这是我的login.js帖子:

    router.post('/', (req, res) => {
      MongoClient.connect(url, { useNewUrlParser: true }, function(err, db) {
      if (err) throw err;
      var dbo = db.db("tmai");
      dbo.collection('users').findOne({username: req.body.user, password: req.body.pass}, function (err, result) {
      if (err) console.log(err);
      if (result === null) res.send('null');
      else {
        res.send({user: result.username});
        // res.redirect('/login');
        // res.render('login/login', {user:req.body.user});
      }
      db.close();
        });
      });
    });
    

    这是我的主页,我正在尝试获取用户价值。在收到上述帖子的发送请求后,我仍然会得到未定义的用户:

    router.get('/', (req, res) => {
      console.log(req);
      res.render('home/home', {user: req.body.user});
    });
    

    文件夹结构的图片(如果有帮助的话)。

    A picture of my folder structure if it helps.

    1 回复  |  直到 7 年前
        1
  •  0
  •   ArchNoob    7 年前

    这是我的主页,我正在尝试获取用户价值。在收到上述帖子的发送请求后,我仍然会得到未定义的用户:

    听起来你需要一些 会议 .

    当用户当前正在使用您的应用程序时,会话可以帮助您的应用程序保存/记住用户数据,例如,登录后。

    在验证了登录时的用户信息之后,您可以在会话存储中存储关于该用户的一些凭据(用户名/id),以便在该用户的请求下访问该用户,如下图所示。

    const express = require('express');
    const session = require('express-session');
    
    const app = express();
    
    //- Apply & configure a session middleware
    app.use(session({
      secret: 'keyboard cat',
      resave: false,
      saveUninitialized: true
    }))
    
    //- Usage in routes
    router.post('/', (req, res) => {
      //- Db user lookup code to get result.username
        
      //- Save username in session
    
      req.session.username = result.username;
    
      //- Then goes your rendering & redirects code
    });

    从这里你可以看到 username 在用户访问的其他路径上的会话中,我们拥有的价值;

    router.get('/', (req, res) => {
      console.log(req.session.username);
      res.render('home/home', {user: req.session.username});
    });

    Read more on express-sessions

    github: express-sessions

    推荐文章