【问题标题】:MySQL table a global variable, ejs and nodejsMySQL表一个全局变量,ejs和nodejs
【发布时间】:2017-12-19 07:41:32
【问题描述】:

我试图弄清楚如何创建一个可以从 mysql 表中获取的全局变量。

app.get('*', function(req, res, next){
  res.locals.user = req.user || null;
  res.locals.mobs = db.query('SELECT * FROM mobs', function(err, rows){
    var rowLength = rows.length;
    for (var i = 0; i < rowLength; i++) {
      var mobs = rows[i];
    }
  });

暴民是我想要做的。使用&lt;%= mobs[0].name %&gt; 会产生一个无法从未定义中获取的结果。

【问题讨论】:

    标签: mysql node.js ejs


    【解决方案1】:

    我认为你需要这个

    db.query('SELECT * FROM mobs', function(err, rows){
          res.locals.mobs = rows
      });
    

    如果你想将数据传递给模板试试这个

    db.query('SELECT * FROM mobs', function(err, rows){
                   res.render('view.ejs',{mob:rows})
              });
    

    【讨论】:

    • 我试过这个:res.locals.mobs = db.query('SELECT * FROM mobs', function(err, rows){ req.locals.mobs = rows; }); 但我最终得到了一个TypeError: Cannot set property 'mobs' of undefined 我不确定这是否意味着 req.locals 未定义或 rows 未定义。你的第一个也没有工作。记错了
    • 你究竟想要什么??
    • 我希望能够使用 mobs[row].column 从数据库表中提取数据,如果有帮助,req.locals.user = req.user 可以帮助我提取登录用户的信息。
    【解决方案2】:

    我找到了答案!我不确定它是否是最有效的,但这里是:

    app.use(function(req, res, next) {
      res.locals.errors = null;
      // Mob Database
      db.query('SELECT * FROM mobs', function(err, rows){
        req.mobs = rows;
        res.locals.mobs = req.mobs;
      });
      next();
    });
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-06-09
      • 2018-05-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多