【问题标题】:Node-mysql wordpress Get post and tags and render page after all queries and for loops are completeNode-mysql wordpress 在所有查询和for循环完成后获取帖子和标签并渲染页面
【发布时间】:2015-04-12 15:34:28
【问题描述】:

只有在所有查询都完成后,有人才能帮我呈现页面吗?

app.get("/", function(req, res) {
  connection = mysql.createConnection(dbconfig);
  connection.connect(function(err) { if(!err) {
    //Get all posts
    connection.query('SELECT * from wp_posts WHERE post_status = "publish" AND post_type = "html5-blank" ORDER BY post_date DESC', function(err, rows, fields) { if(!err) {
      //Get tags
      for (var i in rows) {
        connection.query('SELECT slug FROM wp_terms INNER JOIN wp_term_taxonomy ON wp_term_taxonomy.term_id = wp_terms.term_id INNER JOIN wp_term_relationships ON wp_term_relationships.term_taxonomy_id = wp_term_taxonomy.term_taxonomy_id WHERE taxonomy = "post_tag" AND object_id =' + rows[i].ID, function(err, _rows, fields) { if(!err) {
          var slugs = '';
          for(var y in _rows) {
            slugs += '#' + _rows[y].slug + ' ';
          };
          rows[i]['hashtags'] = slugs;
          console.log(i) //Returns last index
          if(i == rows.length) res.render('content', {_page: '', _posts: rows}); //Executes multiple times
        }})
      };
    }})
  }});
});

即使我检查 i 的值,我也无法获取变量中的新值。有人可以建议在 nodejs 和 node-sql 中进行此类调用的理想方法是什么?

【问题讨论】:

    标签: mysql node.js wordpress


    【解决方案1】:
    app.get("/", function(req, res) {
      connection = mysql.createConnection(dbconfig);
      connection.connect(function(err) { if(!err) {
        //Get all posts
        connection.query('SELECT * from wp_posts WHERE post_status = "publish" AND post_type = "html5-blank" ORDER BY post_date DESC', function(err, rows, fields) { if(!err) {
          //Get tags
          var z = 0;
          for (var i in rows) {
            connection.query('SELECT slug FROM wp_terms INNER JOIN wp_term_taxonomy ON wp_term_taxonomy.term_id = wp_terms.term_id INNER JOIN wp_term_relationships ON wp_term_relationships.term_taxonomy_id = wp_term_taxonomy.term_taxonomy_id WHERE taxonomy = "post_tag" AND object_id =' + rows[i].ID, function(err, _rows, fields) { if(!err) {
              var slugs = '';
              for(var y in _rows) {
                slugs += '#' + _rows[y].slug + ' ';
              };
              rows[z]['hashtags'] = slugs;
              z++;
              console.log(z);
              if(z == rows.length) res.render('content', {_page: '', _posts: rows});
            }});
          };
        }});
      }});
    });
    

    可以完成这项工作,但可以使用更好的解决方案。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-06-16
      • 1970-01-01
      • 1970-01-01
      • 2012-10-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多