Node / Express + MySQL:插入不会立即显示

时间:2016-10-20 16:55:25

标签: mysql node.js express select insert

我有一个名为#add_blog_post的表单,其操作为“/ mysql_test / add_blog_post”,方法为“POST”

玉标记:

form#add_blog_post(action="/mysql_test/add_blog_post" method="POST")

此表单在我的app.js中执行以下代码:

app.post('/mysql_test/add_blog_post', function(req, res) {
  var author = req.body.author;
  var date = req.body.date;
  var title = req.body.title;
  var body = req.body.body;
  var blog_insert_query = "insert into 332project.blog(author,date,title,body) values(";
  blog_insert_query += ("'"+author+"'"+","); blog_insert_query += ("'"+date+"'"+","); blog_insert_query += ("'"+title+"'"+","); blog_insert_query += ("'"+body+"'"+")");

  var connection = mysql.createConnection({
      host: process.env.DB_HOST,
      user: process.env.DB_USER,
      password: process.env.DB_PASS
  });
  connection.connect(function(err) { /*error?*/ });

  var result;
  var query = connection.query(blog_insert_query, function(err, result) {
    res.redirect('/mysql_test');
  });
});

博客文章插入工作正常,但网站需要一段时间才能从/ mysql_test上的select语句中显示插入内容。

这是我的路线:

var express = require('express');
var router = express.Router();
var db_calls = require('../db.js');

var connection = db_calls.connect();
connection.connect(function(err) { /*error?*/ });

var result;
var query = connection.query("select * from 332project.blog order by id desc", function(err, rows, fields) {
    connection.end();
    if (!err) {
        result = rows;
    }
});

router.get('/', function(req, res, next) {
    res.render('mysql_test', { 
        result: result
    });
});
module.exports = router;

是什么给出的?这几乎看起来像是一个缓存问题。我非常希望我的创建/更新操作能够立即显示在我的应用程序中。

源代码:https://github.com/harwoodjp/learning-express

1 个答案:

答案 0 :(得分:1)

您的问题可能是您没有致电connection.end() per the docs