socket.io関数で、DBに新しいユーザを作成して、挿入されたIDを返します。しかし、私の関数は、データベースコールバックが終了する前に戻ります。だから私は戻って、クライアント側に挿入イドを取得しています:コールバックが終了する前にsocket.io関数が返される - Node.js
io.on('connection',function (socket) {
socket.on('newUser',function (user) {
io.emit('newUser',createChatRoom(con,user.email,user.phone));
});
});
私をユーザー関数を作成します。
var createChatRoom = function (con, email, phone) {
con.query("SELECT * FROM USER WHERE `email`='" + email + "'", function (error, result) {
if (error) throw error;
if (result.length == 0) {
var chatToken = require('crypto').createHash('md5').update(email).digest("hex");
con.query("INSERT INTO user(email,chat_token,phone) VALUES('" + email + "','" + chatToken + "','" + phone + "')", function (error1, result1) {
return result1.insertId;
});
} else {
return "Old User";
}
});
};
createChatRoom関数にコールバックを提供し、それをqueryの結果から呼び出します。 – Edgar