Note that there are some explanatory texts on larger screens.

plurals
  1. POHow to get response from socket.on before calling socket.emit
    primarykey
    data
    text
    <p>I am using node.js for creating an application that is maintaing the repository for the courses and its respective lectures and slides. And the retreival of courses of student (from mysql Db) is based on student name, the retreival of lectures is based on course name and soo on. The student name is stored on server and i must get it before calling server for getting course list.</p> <p>Here is my code with more explanation:</p> <pre><code> var StdName; $(document).ready(function () { //connect to server connectBind(); var socket = $("#click").data(); /**********Query database For student name!!!**********/ try { socket.emit('askStdName'); } catch (err) { alert(err.message); } /********Query database For Courses!!!************/ try { socket.emit('view-contents', StdName); } catch (err) { alert(err.message); } }); //connecting to server function connectBind() { // connect to server on this port. var socket = io.connect('http://localhost:3000'); $("#click").data(socket); /**********GETTING NAME OF STUDENT*********/ //I WANT TO GET STUDENT NAME BEFORE THE QUERY FOR COURSES GET CALLED try { socket.on('get-Studentname', function (data) { StdName = data; alert("StdName: " + StdName); }); } catch (err) { alert(err.Message); } </code></pre> <p>And here is the server side script:</p> <pre><code> var express = require('express'); //load express var http = require('http'); // then http var socketIO = require('socket.io'); // then socket var mysql = require('mysql'); var nodemailer = require("nodemailer"); var client = mysql.createConnection({ host: 'localhost', user: 'root', password: '', database: 'smartboard_db' }); client.connect(); var app = express(); // create application var server = http.createServer(app); //create server var io = socketIO.listen(server); // start listening to server. io.set('log level', 2); // setup routing for static files. app.use(express.static(__dirname + '/public')); //start server server.listen(3000, function(){ console.log('Server running...'); }); // First page app.get('/', function(request, response) { response.sendfile(__dirname + '/student-home.html'); }); io.set('log level', 1); io.sockets.on('connection', function (socket) { var sucess; console.log("client connected"); /************SENDING THE NAME TO CLIENT*************/ socket.on('askStdName', function () { console.log('sending student name to client'); socket.emit('get-Studentname', stdName); }); /***********CHANNEL FOR GETTING COURSE LIST************/ socket.on('view-contents', function (stdName) { //console.log("this is what I get from client for courses: " + stdName); var DATABASE = 'smartboard_db'; client.query('USE ' + DATABASE); /*****QUEURY FOR COURSES *****************/ client.query('SELECT courses FROM student_info WHERE name = "' + stdName + '"', function (err, results) { if (err) { throw err; } else { console.log(JSON.stringify({ courses: results })); socket.emit('courses', JSON.stringify({ courses: results })); } }); }); }); </code></pre> <p>Can ny one help please?</p>
    singulars
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload