我使用express来插入/列出来自mysql db的一些记录。一切正常(插入/选择),但如何在插入完成后呈现列表功能?我是否必须重新调用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();
};
答案 0 :(得分:1)
是的,您必须再次SELECT
,并且您的代码通常是正确的。我会重构list
和你要问的部分之间的共同部分,我不会在源文件中列出用户和密码,并进行其他微小的修改,但通常是正确的。
答案 1 :(得分:0)
我更仔细地阅读文档,然后找到了
res.redirect();
所以对于我的例子,它可以正常工作
res.redirect('/wall');
向/ wall路由发出GET请求。获取消息列表时,数据将作为此路由。这对我来说没问题。