0

我正在使用 express 从 mysql 数据库中插入/列出一些记录。一切正常(插入/选择),但插入完成后如何呈现列表功能?我是否必须重新调用 select 语句?

var mysql = require('mysql');

exports.create = function(req, res) {
  var connection = mysql.createConnection({user: 'root', password: 'password', database: 'test'});
  connection.query('INSERT INTO wall (message) VALUES ("' + req.body.message + '")', function(err, result) {
    if (err)
      throw err
    // is this correct? <===
    connection.query('SELECT * FROM wall', function(err, rows) {
      if (err)
        throw err
      if (rows)
        res.render('wall', {title: 'Wall', data: rows});
    });
    // end
    connection.end();
  });
};

exports.list = function(req, res) {
  var connection = mysql.createConnection({user: 'root', password: 'password',      database: 'test'});
  connection.query('SELECT * FROM wall', function(err, rows) {
    if (err)
      throw err
    if (rows)
      res.render('wall', {title: 'Wall', data: rows});
  });
  connection.end();
};
4

2 回答 2

1

是的,您必须SELECT再次这样做,并且您的代码通常是正确的。我会重构list您所询问的部分之间的共同部分,我不会在源文件中列出用户和密码,并进行其他小的修改,但通常它是正确的。

于 2013-09-29T12:06:17.767 回答
0

我更仔细地阅读了文档,我发现

res.redirect();

所以对于我的例子,它工作得很好

res.redirect('/wall');

向 /wall 路由发出 GET 请求。数据将作为该路由获取消息列表来。没关系对我来说。

于 2013-09-29T15:42:41.383 回答