Запрос на получение файла. html не обрабатывается express - PullRequest
0 голосов
/ 18 февраля 2020
const express = require('express');
const app = express();
const port = 3000;
const bodyPar=require('body-parser');
const session = require('express-session');
const path=require('path');
var user=["Jared","Bill","Jason","Jeremy"];


app.use(express.static('proiect'));
app.use(bodyPar.urlencoded({extended : true}));
app.use(bodyPar.json());
app.use(session({secret:'secret',saveUninitialized:true,resave:true}));
var sess;
var s;

app.post('/login',function(req,res){
    var i=0;
    sess=req.session;

    var username=req.body.username;
    var pass=req.body.password;
    var but=req.body.value;
    s=0;
    sess.email=username;

    for(i=0;i<3;i++)
    {
        if(username==user[i])
        {
            s=s+1;
            i=5;
        }
    }
    if(pass="123")
        s=s+1;
    if(s==2)
        res.redirect('homepage.html');
    else
        res.redirect('login-error.html');



    res.end();
});

app.get('/homepage.html',function(req,res){


        console.log('aaa');


});
app.get('bios.html',function(req,res){


        console.log('aaa');


});
app.post('/guest',function(req,res){
    sess=req.session;
    sess.username="Guest";
    s=2;
    res.redirect('homepage.html');
});
app.get('/logout',function(req,res){
    req.session.destroy(function(){
       res.redirect('login.html');  
       s=0;
    });

});
app.listen(port, () => console.log(`listening on port ${port}!`));

Сервер не обрабатывает app.get ('homepage. html') или 'b ios. html', он просто отображает файл html в браузере. (Должен зависнуть и отобразить что-нибудь на консоли).

Должен ли я обслуживать / отображать эти файлы вместо прямого доступа к ним в браузере? Оба эти файла находятся в папке / proiect /, которую я включил на сервере.

1 Ответ

0 голосов
/ 18 февраля 2020

Express находит файл stati c HTML и затем возвращает его пользователю. Поэтому он пропускает обработчик маршрута, который вы написали.

Если вы пытаетесь выполнить какую-то серверную логи c и возвращаете страницу HTML, верните страницу внутри обработчика маршрута, чтобы избежать таких побочных эффектов , В этом случае создайте файл HTML в папке templates или что-то в этом роде. Затем вы можете поместить все ваши ресурсы stati c в папку stati c. Таким образом, ваша структура будет выглядеть примерно так:

+ project_folder
   + static
      + css
         - style.css
      + js
         - app.js
   + templates
      - bios.html
      - homepage.html
      - login.html
      - login-error.html
   - app.js

Тогда ваше приложение. js будет выглядеть примерно так:

const express = require('express');
const app = express();
const port = 3000;
const bodyPar=require('body-parser');
const session = require('express-session');
const path=require('path');
var user=["Jared","Bill","Jason","Jeremy"];


app.use(express.static('static'));
app.use(bodyPar.urlencoded({extended : true}));
app.use(bodyPar.json());
app.use(session({secret:'secret',saveUninitialized:true,resave:true}));
var sess;
var s;

app.get('/login', function(req, res) {
    res.sendFile(path.join(__dirname, '/templates/login.html'));
});

app.post('/login',function(req,res){
    var i=0;
    sess=req.session;

    var username=req.body.username;
    var pass=req.body.password;
    var but=req.body.value;
    s=0;
    sess.email=username;

    for(i=0;i<3;i++)
    {
        if(username==user[i])
        {
            s=s+1;
            i=5;
        }
    }
    if(pass="123")
        s=s+1;
    if(s==2)
        res.redirect('homepage');
    else
        res.redirect('login-error');



    res.end();
});

app.get('/homepage',function(req,res){
    res.sendFile(path.join(__dirname, '/templates/homepage.html'));
});

app.get('bios',function(req,res){
    res.sendFile(path.join(__dirname, '/templates/bios.html'));
});

app.get('login-error', function(req, res) {
    res.sendFile(path.join(__dirname, '/templates/login-error.html'));
});

app.post('/guest',function(req,res){
    sess=req.session;
    sess.username="Guest";
    s=2;
    res.redirect('homepage');
});

app.get('/logout',function(req,res){
    req.session.destroy(function(){
       res.redirect('login');  
       s=0;
    });

});
app.listen(port, () => console.log(`listening on port ${port}!`));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...