mysql - 使用 Node.js 和 mySQL

标签 mysql node.js socket.io

我想使用socket.io从node.js查询mySQL DB, 尽可能模块化的最佳方法是什么?

这就是我到目前为止所做的:(它工作正常,但是有更好的方法吗?)

var app = require('http').createServer(handler)
, io = require('socket.io').listen(app)
, mysql = require('mysql')
, http = require('http');   
var query = "SELECT * FROM table";

app.listen(88);  
io.sockets.on('connection', function (socket) 
{ 
     socket.on('queryReq', function(){queryFunc(query, socket);
});

function queryFunc(query, socket){  
var connection = mysql.createConnection({
  host : 'localhost',
  user : 'admin',
  password : '1234'
});
    connection.query(query, function(err, rows){
    if(err != null) {
        socket.emit("DBnews", "Error in Query: " + err);
    }else{// Shows the results:
    for (var i=0; i<rows.length; i++){
       console.log(rows[i]);
       socket.emit("DBnews", '\n'+JSON.stringify(rows[i]));
    }
    }    
    connection.end();// Close connection
console.log("Disconnected!");
});
}

最佳答案

不要为每个查询持续创建/结束数据库连接。您可以在应用程序启动时连接到数据库,然后在退出时将其关闭[process.on('exit',...)]。除此之外,您的代码看起来适合从套接字事件查询数据库。这实际上与通过 GET 或 POST 请求查询数据库没有什么不同。

关于mysql - 使用 Node.js 和 mySQL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20840821/

相关文章:

node.js - Webpack 配置 - 为什么我们使用 path.resolve 进行输出而不是输入?

mysql - 如何从 CakePHP 中的某些数据库表中获取数据库配置的值?

mysql - 如何设计数据库将属性的属性存储到数据库中

MySQL 正则表达式 : A Digit who is not followed by a Digit

mysql - 对加密列进行排序有哪些不同的方法?

javascript - 使用 Nodejs 自动将文件名保存在数据库中

node.js - Facebook Node Passport 不返回电子邮件地址

javascript - 通过javascript上传socket.io图像

node.js - Arduino 和 NodeJS 之间的连接

javascript - 如何使用node-mysql在for循环中创建对象?