2014-11-15 2 views
0

как я могу хранить и получать доступ к mysql insertId в сеансе socket.io?Socket.io MySQL session

var mysql = require('mysql'); 
var express = require('express'); 
var app = express(); 
var router = express.Router(); 
var https = require('https').createServer(ssl_options, app); 
var io = require('socket.io')(https); 

io.on('connection', function(socket){ 

    socket.on('new user', function(data) { 

     socket.username = data.username; 

     var query = connection.query('INSERT INTO chat SET ?', {subject:'1',message:'2'}, function(err, result) { 

     socket.chat_id = result.insertId; 

     }); 

     console.log (socket.username) // Username 
     console.log (socket.chat_id) // Nothing returns? 

    }); 

}); 
+0

Является ли chat_id полем автоинкремента, которое вы пытаетесь получить? –

+0

@ChrisBarlow да, это! Можно ли сохранить идентификатор в качестве сеанса? – tonoslfx

ответ

0

Я сомневаюсь, что ваша вставка работает, поэтому на самом деле она не имела вставленного значения. Я думаю, вы хотите изменить свою вставку на что-то вроде этого. Кроме того, добавьте тест на ошибки

var query = connection.query('INSERT INTO chat (subject, message) VALUES (?, ?)', {subject:'1',message:'2'}, function(err, result) { 
    if(err) { 
     console.log(err.message); 
     return; 
    } 
    socket.chat_id = result.insertId; 
}); 
+0

Вставка возвращает инкрементированный идентификатор из базы данных .. выглядит я наклоняю выносок сессии глобально – tonoslfx

0

Как сказал Крис ваши параметры не совпадают количество элементов, необходимых для запроса. Вторая проблема: обычно второй параметр представляет собой массив значений вместо объекта. Третья проблема: вы проверяете, прежде чем запрос вернет значение, потому что ваш console.log находится за пределами анонимной функции обратного вызова.

var query = connection.query('INSERT INTO chat (subject, message) VALUES (?, ?)', ['1','2'], function(err, rows) { 
    socket.chat_id = result.insertId; 
    console.log(socket.chat_id); 
} 
Смежные вопросы