MySQL表是一个全局变量,ejs和nodejs

时间:2017-12-19 07:41:33

标签: mysql node.js ejs

我试图弄清楚如何创建一个可以从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];
    }
  });

小怪就是我想要做的。使用<%= mobs[0].name %>会产生一个未定义的不可能。

2 个答案:

答案 0 :(得分:0)

我认为你需要这个

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

答案 1 :(得分:0)

我找到了答案!我不确定它是否效率最高,但现在是:

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