我在服务器端使用express。 这是代码:
// router
const database = require('../services/database-service');
router.get('/allreviews', function (req, res, next) {
let reviewsSql =
'select r.reviewId, r.username, r.time, r.reviewText, r.visit, ri.fileName ' +
'from (select min(reviewImgId) as imgId, reviewId ' +
'from ReviewImgs ' +
'group by reviewId) img, Reviews r, ReviewImgs ri ' +
'where img.imgId=ri.reviewImgId and ri.reviewId=r.reviewId;';
database.query(reviewsSql, function (result) {
console.log(result); // NULL
res.send(result);
});
});
// database-service.js
const mysql=require('mysql');
module.exports = {
query: function (sql, data, fn) {
const connection = mysql.createConnection({
host : '127.0.0.1',
user : 'root',
password : 'xxxxxxxxx',
database : 'Movie',
port:'3306'
});
connection.connect();
connection.query(sql, data, function (error, result) {
if (error){
console.log(error);
return;
}
fn(result);
});
connection.end();
}
};
问题是查询结果总是为空。但是,我在mysql命令行中执行sql查询代码,结果是一个包含3行的集合,这正是我想要的。那么发生了什么?
最佳答案
尝试这样做
// database-service.js
const mysql=require('mysql');
const connection = mysql.createConnection({
host : '127.0.0.1',
user : 'root',
password : 'xxxxxxxxx',
database : 'Movie',
port:'3306'
});
connection.connect();
module.exports = connection;
//执行查询
database.query(reviewsSql, function (err, result) {
console.log(result); // NULL
res.send(result);
});
关于Mysql 的 Express 查询返回 null,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53337524/