Node.js脚本,通过socket.io连接到MySQL数据库
我开发了一个Node.js脚本,使用socket.io连接到MySQL数据库。然而,当我尝试使用我的Tianium客户端应用程序连接到服务器时,它只是传递了我创建的连接方法;没有错误消息或任何类型的消息,套接字只是关闭而不调用脚本。有人知道我的问题是什么吗。作为参考,我的代码是:Node.js脚本,通过socket.io连接到MySQL数据库,mysql,node.js,socket.io,appcelerator-mobile,titanium-mobile,Mysql,Node.js,Socket.io,Appcelerator Mobile,Titanium Mobile,我开发了一个Node.js脚本,使用socket.io连接到MySQL数据库。然而,当我尝试使用我的Tianium客户端应用程序连接到服务器时,它只是传递了我创建的连接方法;没有错误消息或任何类型的消息,套接字只是关闭而不调用脚本。有人知道我的问题是什么吗。作为参考,我的代码是: var app = require('net') , fs = require('fs') , Client = require('mysql').Client , clie
var app = require('net')
, fs = require('fs')
, Client = require('mysql').Client
, client = new Client();
client.user = 'user';
client.password = 'password'; // Obviously this is not my real password
var sockets_list = [];
var server = app.createServer(function (socket) {
sockets_list.push(socket);
socket.write("Hello Client\r\n");
socket.on('data', function(data) {
console.log(data);
for (var i = 0; i < sockets_list.length; i++) {
sockets_list[i].write(data);
}
});
client.connect(function(err, results) {
if (err) {
console.log("ERROR: " + err.message);
socket.write("NO!\r\n");
throw err;
}
console.log("connected.");
socket.write("Got through here\r\n");
clientConnected(client);
});
socket.on('end', function() {
var i = sockets_list.indexOf(socket);
sockets_list.splice(i, 1);
});
});
server.listen(8080);
clientConnected = function(client)
{
client.query('USE db', function(err, results) {
if (err) {
console.log("ERROR: " + err.message);
throw err;
}
});
};
但是,我实际上无法访问连接后定义的任何代码。如果有人能告诉我哪里出了问题,我将不胜感激。作为记录,我在这里使用节点mysql libmysqlclient的测试代码:。谢谢
问候
陀螺机长这是我试图解决您的问题的方法,它连接到数据库并将所选表格中的所有内容收回,然后将一个虚拟字符串写入套接字。你可能还想看看。。。您在问题中提到了它,但此应用程序中未使用它
var app = require('net')
, mysql = require('mysql-libmysqlclient')
, conn = mysql.createConnectionSync();
conn.connectSync('localhost', 'user', 'password', 'database');
conn.setCharsetSync('utf8');
var sockets_list = [];
var server = app.createServer(function (socket) {
sockets_list.push(socket);
socket.write("Hello Client\r\n");
socket.on('data', function(data) {
console.log(data);
for (var i = 0; i < sockets_list.length; i++) {
sockets_list[i].write(data);
}
});
clientConnected = function() {
conn.query('SELECT * FROM table', function(err, results) {
if (err)
throw err;
else {
results.fetchAll(function (err, rows) {
if (err)
throw err;
// print out database info
console.log(rows);
socket.write('socket writes here');
});
}
});
};
clientConnected();
socket.on('end', function() {
var i = sockets_list.indexOf(socket);
sockets_list.splice(i, 1);
});
});
server.listen(8080);
var-app=require('net'))
,mysql=require('mysql-libmysqlclient')
,conn=mysql.createConnectionSync();
conn.connectSync('localhost','user','password','database');
conn.setCharsetSync('utf8');
var sockets_list=[];
var server=app.createServer(函数(套接字){
插座列表。按下(插座);
socket.write(“Hello客户端\r\n”);
socket.on('data',函数(data){
控制台日志(数据);
对于(变量i=0;i
~希望这会有所帮助,谢谢。我已经看过Node.js的网站,我决定停止使用Node-mysql包,转而使用Node-mysql-libmysqlclient包。
var app = require('net')
, mysql = require('mysql-libmysqlclient')
, conn = mysql.createConnectionSync();
conn.connectSync('localhost', 'user', 'password', 'database');
conn.setCharsetSync('utf8');
var sockets_list = [];
var server = app.createServer(function (socket) {
sockets_list.push(socket);
socket.write("Hello Client\r\n");
socket.on('data', function(data) {
console.log(data);
for (var i = 0; i < sockets_list.length; i++) {
sockets_list[i].write(data);
}
});
clientConnected = function() {
conn.query('SELECT * FROM table', function(err, results) {
if (err)
throw err;
else {
results.fetchAll(function (err, rows) {
if (err)
throw err;
// print out database info
console.log(rows);
socket.write('socket writes here');
});
}
});
};
clientConnected();
socket.on('end', function() {
var i = sockets_list.indexOf(socket);
sockets_list.splice(i, 1);
});
});
server.listen(8080);