我正在使用express进行节点应用。但我遇到了一个非常奇怪的错误。
router.post('/search', function (req, res, next) {
var key = req.body.search;
if(key.length>0) {
connection.query('select * from patient where name=?', [key], function(err, result) {
if(err) return console.log(err);
console.log(result);
res.render('searchPage', {
name: "Alex",
birthday: result.Birthday,
sex: result.sex,
symptom: result.Symptom,
contact: result.Contact,
});
})
}
})
在我发布搜索内容之后,我在命令行中找到了一些内容。
[ RowDataPacket {
id: '1',
Name: 'Alex',
Birthday: null,
sex: null,
Sympton: null,
Contact: '13719483934' } ]
但是我的searchPage
html页面除了字符ALex
之外我没有得到任何内容。看起来我的jade文件可以正确获取变量值,但result
param在res.render()内失败。问题在哪里?
答案 0 :(得分:1)
results
是一个数组(查看文档总是如此)。所以你应该使用像这样的第一个元素(来自:https://github.com/mysqljs/mysql)
pool.query('SELECT 1 + 1 AS solution', function (error, results,
fields) {
if (error) throw error;
console.log('The solution is: ', results[0].solution);
});