在for循环中将数据发送到express.js.

时间:2016-10-07 16:59:04

标签: mysql node.js express ejs

我需要帮助,我真的无法解决这个问题。 我有这个网站使用Node.js来调用mySQL个查询并将其显示为表格,每个表格都在其自己的页面中。为此,我创建了4个对象,包括名称,标题和查询。当我有四次代码(从queryPage[0]queryPage[3])时,它的效果非常好。但是我想把它放到for循环中,所以我不需要重复4次相同的行,但是它不起作用。页面没有加载......知道发生了什么事吗?

connection.query(queryPage[0].query, function(err, rows) {
  var arr = [];
  for (var i in rows) {
    arr[i] = rows[i];
  }
  app.get('/' + queryPage[0].name, function(req, res) {
    res.render('pages/' + queryPage[0].name, {
      title: queryPage[0].title,
      data: arr
    });
  });
});

1 个答案:

答案 0 :(得分:0)

我认为你需要更像这样的东西

var queryPage = [ ... ];
// This route catches all request
app.get('/:name', function (req, res, next) { 
    // :name = req.params.name

    var page;
    for(var i = 0, l = queryPage.length; i < l; i++)
        if(queryPage[i].name === req.params.name) {
            page = queryPage[i];
            break;
        }

    // Check the page exists
    if(!page) return res.status(404).send('Not found');
    // if(!page) return next();

    connection.query(page.query, function(err, rows) {
        res.render('pages/' + page.name , {
            title: page.title, 
            data: rows
        });
    });
});