1

コースとそれぞれの講義とスライドのリポジトリを維持するアプリケーションを作成するために node.js を使用しています。また、(mysql Db からの) 学生のコースの検索は学生名に基づいており、講義の検索はコース名などに基づいています。学生の名前はサーバーに保存されており、コースリストを取得するためにサーバーを呼び出す前に取得する必要があります。

詳細な説明を含む私のコードは次のとおりです。

 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);
}

サーバー側のスクリプトは次のとおりです。

    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 }));
        }
    });

       });
   });

誰か助けてくれませんか?

4

1 に答える 1