Javascript nodejs中的mysql函数首次运行
我是node.js的新手 我写了一个Javascript nodejs中的mysql函数首次运行,javascript,mysql,node.js,Javascript,Mysql,Node.js,我是node.js的新手 我写了一个userModel模块来使用MySQL做数据库的工作,工作很好,但只是第一次。当我刷新页面时,mysql数据返回null userModel.js//我的模块 var mysql = require('mysql'); var con = mysql.createConnection({ host: "localhost", user: "root", password: "", database: "database" }); module
userModel
模块来使用MySQL做数据库的工作,工作很好,但只是第一次。当我刷新页面时,mysql数据返回null
userModel.js//我的模块
var mysql = require('mysql');
var con = mysql.createConnection({
host: "localhost",
user: "root",
password: "",
database: "database"
});
module.exports = {
allUsers: function (callback) {
con.connect(function (err1) {
if (err1){
return callback(err1, null);
}
con.query("SELECT * FROM users", function (err2, result, fields) {
if (err2){
return callback(err2, null);
}
callback(err2, result);
});
});
}
};
app.js//主js文件
var express = require('express'),
bodyParser = require('body-parser'),
_ = require('underscore');
var app = express();
var port = process.env.PORT || 8080;
var User = require('./models/userModels');
var bookRouter = express.Router();
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({extended:true}));
bookRouter.route('/books')
.get(function (req, res) {
User.allUsers(function (err, results) {
var id = req.query.id;
var somre = _.find(results , function (param) { //result is null in second refresh
return param['id'] == id;
});
console.log(results);
res.send(somre);
});
})
app.use('/api' , bookRouter)
app.get('/' , function (req , res) {
res.send('welcome to my API');
});
查询mySQL连接后,您不会释放它。因此,当第二次已有另一个连接处于活动状态时,您会多次调用connect() 您可以尝试将err变量记录到控制台日志中,看看是否有结果吗?好像出了什么事。对。。。查看
回调的两个调用
。其中一个按字面意思传递null
以获得结果。当有错误的时候。尝试使用控制台检查错误。log
@Brandon yes我有此错误错误:在已将握手排队后无法将握手排队。
@Brandon绝对,任何生产SQL DB都应该使用连接池。。