mysql - Node.js 中的页面重定向

标签 mysql node.js

我是node.js的新手,我正在开发一个简单的应用程序,其中学生和老师之间将发生实时数据分发。学生首次登录,经过服务器验证后,将重定向到学生界面。
我已完成所有身份验证和数据分发工作,请帮助我如何重定向到 Student.html

var ports = 3000;
var portt = 3001;
var express = require('express');
var student = require('express')();
var teacher = require('express')();
var server_s = require('http').createServer(student);
var server_t = require('http').createServer(teacher);
var ios = require('socket.io').listen(server_s);
var iot = require('socket.io').listen(server_t);
var path = require('path');

server_s.listen(ports);
server_t.listen(portt);

student.use(express.static(path.join(__dirname, 'public')));
student.get('/', function(req,res){
    res.sendfile(__dirname + '/login.html');
});

teacher.use(express.static(path.join(__dirname, 'public')));

teacher.get('/', function(req,res){
        res.sendfile(__dirname + '/mytry.html');
});


ios.sockets.on('connection', function(socket){
     var username, password;



socket.on('verify',function(data){
username = data[0];
password = data[1];
//************* Database connection and query *************
var mysql      = require('mysql');
var connection = mysql.createConnection({
host     : 'localhost',
user     : 'user',
password: 'pswd',
database: 'db'
});

connection.connect();
var qstring = 'SELECT s_id FROM login_student WHERE username='+username+'AND password='+password;
connection.query(qstring, function(err, rows, fields) 
{
    if (err) 
    {   
        console.log('ERROR: ' + err);
            socket.emit('login_failure','database error');
        return;
    }
    console.log('The solution is: ', rows[0].solution);
    if (rows>0) alert('Login Successfull');///// **I want redirection here** 
    else socket.emit('login_failure', 'invalid user name or password');
});

connection.end();
});
});

iot.sockets.on('connection', function(socket){
    socket.on('sendlesson', function(lesson){
    ios.sockets.emit('updatelesson', lesson);
});
});

最佳答案

socket.io 没有“重定向”的概念,因此您将发出一条消息,指示您的客户端代码进行重定向:

// in your socket.io code
if (rows > 0)
  socket.emit('login_success');
else
  socket.emit('login_failure', 'invalid user name or password');

// in your client-side code
socket.on('login_success', function() {
  location.href = '/student.html';
});

(但这显然不会阻止任何人直接访问 /student.html)

关于mysql - Node.js 中的页面重定向,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19477608/

相关文章:

php - MySQL/Mariadb 进程在前一个进程完成之前不会运行

javascript - 如何限制并发执行?

mysql - PHP strip_tags 加上 htmlspecialchars

java - MySQL DB 服务器在保存时间戳列时使用系统时区

javascript - 从浏览器检测是否有多个屏幕连接

node.js - Mongoose 查询外的回调数据

mongodb - 寻求有关在 Node.JS 中读取 MongoDB 的帮助

javascript - 你如何在 MongoDB 中检索 "related"文档?

php - 使用数组的 PDO bindParam,未按假设工作

mysql - 在MySQL中先按数字然后按字母对记录进行排序