最近使用nodejs连接mysql,访问禅道系统的数据库做数据统计时遇到奇怪问题
1:禅道系统可以正常使用
2:通过phpmyadmin可以正常访问mysql下的数据库
3:命令行也可以正常访问mysql
4:通过自己写的nodejs就无法正常访问,具体现象是可以连接数据库,也可以查询出具体的数据表中的结果,但是查询出来的结果不正确(直接用调试出的sql语句在phpmyadmin中查询出来的记录数和程序中查询出来的不一致,要少很多),但是我把服务器上的数据库导入到本地的mysql中同样的程序又可以正常访问
5:备注(服务器上的mysql一致无法远程访问,试过网上的各种方法,本人对mysql配置不是很了解)
求解惑,请由此经验的朋友予以解惑,不胜感激!
var express = require('express');
var mysql = require('mysql');
var router = express.Router();
var async = require('async');
require('linqjs');
var pool = mysql.createPool({
host: 'localhost',
user: 'root',
password: '123456',
database: 'zentao'
});
/* GET home page. */
router.get('/', function (req, res, next) {
var nowDate = new Date(),
year = nowDate.getFullYear(),
month = nowDate.getMonth(),
queryDate = req.query.date || '',
date = queryDate !== '' ? queryDate : year + '-' + (month > 10 ? month : '0' + month);
async.parallel([function (callback) {
pool.query('select account,realname from zt_user where dept=1', function (err, rows, fields) {
callback(err, rows);
})
}, function (callback) {
pool.query('SELECT name, status ,assignedTo,finishedBy,finishedDate,estimate,consumed,date_format(finishedDate, "%Y-%m-%d") as finishedDate FROM zt_task WHERE (status = "done" || status = "closed" ) and date_format(finishedDate, "%Y-%m")= "' + date + '"', function (err, rows, fields) {
callback(err, rows);
});
}], function (err, result) {
if (!err) {
res.render('index', { date: date });
} else {
res.render('error', {
error: err.message
});
}
})
});
module.exports = router;