Мое приложение вызывает route.get после выполнения route.post - PullRequest
0 голосов
/ 02 февраля 2019

Не могу понять, как там происходит.

login.js это скрипт маршрута.Использование login.js кода включено в app.js.

Ниже описан поток, который я хочу сделать.

  1. подключение к localhost:3000/login -> route.get('/',...) называется
  2. Проверьте информацию для входа.
  3. Отправьте информацию на router.post('/loginCheck,...)
  4. Если информация для входа верна, отобразите главную страницу res.render('main')

Нониже не ожидается поток, я не могу понять.

  1. подключиться к localhost:3000/login -> route.get('/',...) называется
  2. Проверить данные для входа
  3. Отправить информацию наrouter.post('/loginCheck,...)
  4. Если информация для входа верна, отобразите главную страницу res.render('main')
  5. Поток переходит в route.get('/',...) и res.render('login') выполняется повторно.

Я не могу понять, почему поток переходит в route.get('/',...) после router.post('/loginCheck,...) конца, хотя есть какой-нибудь код, вызывающий route.get('/',...)

Сторона сервера:

//app.js

'use strict';

/******************
 * Declare global variables *
 *******************/
global.__base = __dirname + "/src";
global.__root = __dirname;

/******************
 * Call libraries *
 ******************/
const bodyParser = require('body-parser');
const Logger = require(__base + '/lib/util/logger');
const express = require('express');
const app = express();


/******************
 * Milddleware Configuration*
 ******************/
app.use(bodyParser.urlencoded({extended : false}));
app.use(bodyParser.json());
app.use(express.static(__root + '/public'));
app.set('view engine','ejs');
app.set('views', __root + '/views');


/******************
 * Environment Configuration *
 ******************/
const PORT = process.env.PORT || 3000;

/******************
 * Use router in express *
 ******************/
const main = require(__root + '/routes/main');
const login = require(__root + '/routes/login');

app.use("/main", main);
app.use("/login", login);

app.listen(PORT, function() {
    Logger.info(`connection complete. Open page localhost:${PORT}`);
});

    //login.js
    
    /****************************************
     * Call libraries *
     ****************************************/
    const express = require('express');
    const router = express.Router();
    const mysql = require(__base + '/lib/db/async-mysql');
    const Logger = require(__base + '/lib/util/logger');


    /****************************************
     * Declare Classes *
     ****************************************/
    const CHECK_LOGIN_INFO_SQL = require(__root + '/template/sql/checkLoginInfo').CHECK_LOGIN_INFO

    /****************************************
     * router posts/gets *
     ****************************************/
    const binder = [];

    router.post('/loginCheck', async function (req,res){
        const id = req.body.id;
        const pw = req.body.pw;
        let result = false;

        binder.push(id);

        // res.render('main');
        const sqlResult = await mysql.query(CHECK_LOGIN_INFO_SQL,binder);

        if(sqlResult[0].PW){
            if(sqlResult[0].PW == pw){
                // result = true;
                res.render('main',function(err, html) {
                    console.log('error : ' + err);
                });
            }
        }
    });

    router.get('/', function(req,res){
        console.log('login page open')
        res.render('login');
    });

    module.exports = router;

Клиентская сторона:

/******************
 * Login page send post *
 ******************/
const HOST_LOGIN = "/login";
service.checkLogin = function(params) {
    service._sendJsonToServer(HOST_LOGIN+'/loginCheck', 'json', params, function(data){
        //task after ajax success
    });
};



/******************
 * Ajax template *
 ******************/
service._sendJsonToServer = function(url, dataType, params,callback) {
    $.ajax({
        url : url,
        data : JSON.stringify(params),
        dataType : dataType,
        type : 'POST',
        contentType : 'application/' + dataType,
        // error : errorHandler,
        success: callback
    });
};
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...