首页 > 开发 > MySQL > 正文

node.js用express连接MySQL出现了bug

2017-09-08 09:04:15  来源:网友分享

初学node,用express写了一个测试脚本想连接数据库查询数据。代码如下:

var express = require('express');var app = express();app.get('/hello', function (req, res) {    var mysql      = require('mysql');    var connection = mysql.createConnection({        host     : '121.42.209.162',        user     : 'root',        password : '这里是密码',        database : 'hgb'    });    var obj;    var isok='failed';    connection.connect(function(err) {        if (err) {            console.error('error connecting: ' + err.stack);            return;        }        console.log('connected as id ' + connection.threadId);    });    connection.query('SELECT * FROM `538`', function(err, rows) {        if(err){            console.log(err.code); // 'ECONNREFUSED'            console.log(err.fatal); // true        }        isok='ok';    });    connection.end();    res.send(isok);});var server = app.listen(3000, function () {    var host = server.address().address;    var port = server.address().port;    console.log('Example app listening at http://%s:%s', host, port);});

但是浏览器打开http://localhost:3000/hello后,显示的是

同时,xshell里面看到的日志是这样的:

说明数据库连接是成功的?!
可是按理说查询成功的话会执行回调函数也就是说isok会变成'ok'啊。。。
求好心人解答,谢谢。。

解决方案

程序是异步执行的,query还没执行完就send了