node.js:无法访问createserver中的mysql?

toiithl6  于 2021-06-20  发布在  Mysql
关注(0)|答案(2)|浏览(421)

我正在尝试在node.js中构建一个服务器,它将接收来自客户端的请求,访问服务器上的mysql服务器,并将数据从该服务器发送到客户端。我可以在createserver之外访问mysql服务器,但不能将sql查询放在createserver方法中。
不起作用的示例:

var jellies;

http.createServer(function (req, res) {

    var sql = "SQL STATEMENT";

    sqlConnection.query(sql, function(err, result) {

        if (err) throw err;

        jellies = result;

    }

res.write(JSON.stringify(jellies));

}).listen(port);

工作原理示例:

var jellies;

var sql = "SQL STATEMENT";

sqlConnection.query(sql, function(err, result) {

    if (err) throw err;

    jellies = result;

}

http.createServer(function (req, res) {

res.write(JSON.stringify(

}).listen(port);

查询完成后,console.log(jellies)为第一个函数生成null。只是不允许您在http.createserver()中执行任何操作?有什么办法解决这个问题吗?
我得到的错误是:typeerror:第一个参数必须是字符串或缓冲区。它回调htts.createserver()的行;

t3psigkw

t3psigkw1#

你能试试这个吗?

http.createServer(function (req, res) {

    var sql = "SQL STATEMENT";

    sqlConnection.query(sql, function(err, result) {

       if (err) throw err;

       res.write(JSON.stringify(result));

    }

}).listen(port);
hgb9j2n6

hgb9j2n62#

我想我昨天解决的问题几秒钟就能被一个在线的朋友解决。
对于下一个可能会遇到此问题的人,需要解决的问题是将res.write()和res.end()移动到sql查询函数中。

相关问题