Не удается получить страницу редактирования. Ошибка при использовании mysql и javascript - PullRequest
0 голосов
/ 05 апреля 2020

Я не могу открыть страницу редактирования одного из моих заказов в моем веб-приложении. Я думаю, что проблема в запросе выбора. Потому что идентификатор отсутствует. Смотрите вложение. Я понятия не имею, почему это больше не работает. Я поставлю код здесь. Я также добавил два вложения. Одна - это домашняя страница, а другая - когда я нажимаю на кнопку «Изменить», появляется сообщение об ошибке введите описание изображения здесь

EditPlayerPage

editPlayerPage: (req, res) => {
        var user =  req.session.user,
        userId = req.session.userId;
            if(userId == null){
                res.render('login', {

                    message: 'Uw inlog sessie is verlopen. Log aub opnieuw in.'
                }
                )};
        let playerId = req.params.id;
        let query = "SELECT  * FROM `players` WHERE id = '" + playerId + "'";
        // let query1 ="SELECT achternaam, telefoonnummer, adres, email, typetaart, aantalpersonen, smaak, vulling, opmerking, prijs, reedsVoldaan, nogTeVoldoen, DATE_FORMAT(date, '%d-%m-%Y') date, image, user_name FROM `players` WHERE id = '" + playerId + "' ORDER BY id ASC";
        db.query(query, (err, result) => {
            if (err) {
                return res.status(500).send(err);
            }
            res.render('edit-player.ejs', {
                title: 'Edit  Player'
                ,player: result[0]
                ,message: ''
            });
        });

    },

homepageadmin

exports.homepageMTaartenAdmin = function(req, res, next){

   var user =  req.session.user,
   userId = req.session.userId;
   console.log('ddd='+userId);
   if(userId == null){
      res.redirect("login");
      return;
   }

   var sql  = "SELECT * FROM `players` ORDER BY id ASC"; // query database to get all the players
   var sql1 = "SELECT achternaam, telefoonnummer, adres, email, typetaart, aantalpersonen, smaak, vulling, opmerking, prijs, reedsVoldaan, nogTeVoldoen, DATE_FORMAT(date, '%d-%m-%Y') date, image, user_name FROM `players` ORDER BY id ASC;"
   var sql2 = "SELECT p.*, DATE_FORMAT(date, '%d-%m-%Y') formatted_dateFROM `players` p ORDER BY id ASC";
   db.query(sql1, function(err, result){
      res.render('homepageMTaartenAdmin', {players:result});    

   });            
};

Ошибка редактирования страницы enter image description here

Ответы [ 2 ]

0 голосов
/ 05 апреля 2020

Вам необходимо каким-то образом вернуть идентификатор в маршрут маршрута Express, иначе он все равно не будет работать. Вот почему я попросил показать идентификатор в консоли, чтобы увидеть, есть ли какой-либо идентификатор в объекте запроса. Если нет, вам нужно как-то поставить id как-то так:

app.get('/edit/:id/', function (req, res) {
  //Your editpage code will be here and you can get ID parameter as well.
}
0 голосов
/ 05 апреля 2020

@ Эльман, это мой код для приложения. js и игрока. js и пользователя. js

приложения. js

const express       = require('express');
const session       = require('express-session');
const cookieParser  = require('cookie-parser');
const fileUpload    = require('express-fileupload');
const bodyParser    = require('body-parser');
const mysql         = require('mysql');
const path          = require('path');
const app           = express();
const passport      = require("passport");
const http          = require('http');

const flash         = require('connect-flash');
var user            = require('./routes/user.js');
var routes          = require('./routes/index');

const {getHomePageMTaarten} = require('./routes/index1');
const {getHomePage} = require('./routes/index1');
const {getLoginPage1} = require('./routes/index1');
const {getLoginPage} = require('./routes/index1');
const {getLoginPageTest} = require('./routes/index1');
const {addPlayerPage, addPlayer, deletePlayer, editPlayer, editPlayerPage, playerDetailsPage, addReservationPage, addReservation, editReservationPage, editReservation} = require('./routes/player');
const port = 3000;
const {getVerjaadagstaartenPage} = require('./routes/index1');
const {getBruidsTaartenPage} = require('./routes/index1');


// create connection to database
// the mysql.createConnection function takes in a configuration object which contains host, user, password and the database name.

var connection = mysql.createConnection({
    host     : 'localhost',
    user     : 'root',
    password : '',
    database : '',
    dateStrings: true,
  });

connection.connect();

global.db = connection;

const db = mysql.createConnection ({
    host: 'localhost',
    user: 'root',
    password: 'Emlienashoti55',
    database: 'mtaartendb',
    dateStrings: true,

});

// connect to database
db.connect((err) => {
    if (err) {
        throw err;

    }
    console.log('Connected to database');
});
global.db = db;

// configure middleware
app.set('port', process.env.port || port); // set express to use this port
app.set('views', __dirname + '/views'); // set express to look in this folder to render our view
app.set('view engine', 'ejs'); // configure template engine
app.use(bodyParser.urlencoded({ extended: false }));

app.use(bodyParser.json()); // parse form data client
app.use(express.static(path.join(__dirname, 'public'))); // configure express to use public folder
app.use(fileUpload()); // configure fileupload


app.use(session({
    secret: 'justsecret',
    resave: false,
    saveUninitialized: true,
    cookie: {maxAge: 600000}
}));
app.use(passport.initialize());
app.use(passport.session());



app.get('/login', routes.login);//call for login page
app.post('/login', user.login);
app.get('/', getHomePage);
app.get('/homepageMTaartenAdmin', user.homepageMTaartenAdmin);
app.get('/home/logout', user.logout);//call for logout
app.get('/add', addPlayerPage);
app.post('/add', addPlayer);
app.get('/edit/:id', editPlayerPage);
app.post('/edit/:id', editPlayer);
app.get('/playerDetailsPage/:id', playerDetailsPage);
app.get('/delete/:id', deletePlayer);
//app.get('/edit/id', editReservationPage);
//app.post('/edit/:id', editReservation);
// app.get('/', user.homepageMTaarten);
//app.get('/verjaardagsTaartenPage', getVerjaadagstaartenPage);
//app.get('/bruidsTaartenPage', getBruidsTaartenPage);
//app.get('/addReservation', addReservationPage);
//app.post('/addReservation', addReservation);




//Middelware
app.listen(port, () => {
    console.log(`Server running on port: ${port}`);
});



function isLoggedIn(req, res, next){
    if(req.isAuthenticated()){
        return next();
    }
    res.redirect("login")
};

игрока. js

const fs = require('fs');

module.exports = {
    addPlayerPage: (req, res) => {
    var user =  req.session.user,
    userId = req.session.userId;
        if(userId == null){
            res.redirect("login");
        }else {
        res.render('add-player.ejs', {
            title: 'Welcome to Socka | Add a new player'
            ,message: ''
        });
    }
    },
    addPlayer: (req, res) => {

        if (!req.files) {
            return res.status(400).send("No files were uploaded.");
        }

        let message = '';
        let achternaam      = req.body.achternaam;
        let telefoonnummer  = req.body.telefoonnummer;
        let adres           = req.body.adres;
        let email           = req.body.email;
        let typetaart       = req.body.typetaart;
        let aantalpersonen  = req.body.aantalpersonen;
        let smaak           = req.body.smaak;
        let vulling         = req.body.vulling;
        let opmerking       = req.body.opmerking;
        let prijs           = req.body.prijs;
        let reedsVoldaan    = req.body.reedsVoldaan;
        let nogTeVoldoen    = req.body.nogTeVoldoen;
        let date            = req.body.date;
        let username        = req.body.username;
        let uploadedFile    = req.files.image;
        let image_name      = uploadedFile.name;
        let fileExtension   = uploadedFile.mimetype.split('/')[1];
        image_name          = achternaam + '.' + fileExtension;

        let usernameQuery = "SELECT * FROM `players` WHERE user_name = '" + username + "'";

        // db.query(usernameQuery, (err, result) => {
        //     if (err) {
        //         return res.status(500).send(err);
        //     }
        //     if (result.length > 0) {
        //         message = 'Username already exists';
        //         res.render('add-player.ejs', {
        //             message,
        //             title: 'Welcome to Socka | Add a new player'
        //         });
        //     } else {
                // check the filetype before uploading it
                if (uploadedFile.mimetype === 'image/png' || uploadedFile.mimetype === 'image/jpeg' || uploadedFile.mimetype === 'image/gif') {
                    // upload the file to the /public/assets/img directory
                    uploadedFile.mv(`public/assets/img/${image_name}`, (err ) => {
                        if (err) {
                            return res.status(500).send(err);
                        }
                        // send the player's details to the database
                        let query = "INSERT INTO `players` (achternaam, telefoonnummer, adres, email, typetaart, aantalpersonen, smaak, vulling, opmerking, prijs, reedsVoldaan, nogTeVoldoen, date, image, user_name) VALUES ('" +
                            achternaam + "', '" + telefoonnummer + "', '" + adres + "', '" + email + "', '" + typetaart + "', '" + aantalpersonen + "', '" + smaak + "','" + vulling + "', '" + opmerking + "', '" + prijs + "', '" + reedsVoldaan + "', '" + nogTeVoldoen + "',STR_TO_DATE ('" + date + "', '%d-%m-%Y'), '" + image_name + "', '" + username + "')";

                            db.query(query, (err, result) => {
                            if (err) {
                                return res.status(500).send(err);
                            }
                            res.redirect('/homepageMTaartenAdmin');
                        });
                    });
                } else {
                    message = "Invalid File format. Only 'gif', 'jpeg' and 'png' images are allowed.";
                    res.render('add-player.ejs', {
                        message,
                        title: 'Welcome to Socka | Add a new player'
                    });
                }
        //     }
        // });
    },
    editPlayerPage: (req, res) => {
        var user =  req.session.user,
        userId = req.session.userId;
            if(userId == null){
                res.render('login', {

                    message: 'Uw inlog sessie is verlopen. Log aub opnieuw in.'
                })

            };
            console.log(req);
        let playerId = req.params.id;
        let query = "SELECT  * FROM `players` WHERE id = '" + playerId + "'";
        // let query1 ="SELECT achternaam, telefoonnummer, adres, email, typetaart, aantalpersonen, smaak, vulling, opmerking, prijs, reedsVoldaan, nogTeVoldoen, DATE_FORMAT(date, '%d-%m-%Y') date, image, user_name FROM `players` WHERE id = '" + playerId + "' ORDER BY id ASC";
        db.query(query, (err, result) => {
            if (err) {
                console.log(playerId);
                return res.status(500).send(err);
            };
            console.log(playerId);
            res.render('edit-player.ejs', {
                title: 'Edit  Player'
                ,player: result[0]
                ,message: ''
            });
        });

    },
    editPlayer: (req, res) => {
        let playerId = req.params.id;
        let achternaam = req.body.achternaam;
        let telefoonnummer = req.body.telefoonnummer;
        let adres = req.body.adres;
        let email = req.body.email;
        let aantalpersonen = req.body.aantalpersonen;
        let typetaart = req.body.typetaart;
        let smaak = req.body.smaak;
        let vulling = req.body.vulling;
        let opmerking = req.body.opmerking
        let prijs = req.body.prijs;
        let reedsVoldaan = req.body.reedsVoldaan;
        let nogTeVoldoen = req.body.nogTeVoldoen;
        let date = req.body.date;


        let query = "UPDATE `players` SET `achternaam` = '" + achternaam + "', `telefoonnummer` = '" + telefoonnummer + "', `adres` = '" + adres + "', `email` = '" + email + "', `typetaart` = '" + typetaart + "', `aantalpersonen` = '" + aantalpersonen + "', `smaak` = '" + smaak + "', `vulling` = '" + vulling + "', `opmerking` = '" + opmerking + "', `prijs` = '" + prijs + "', `reedsVoldaan` = '" + reedsVoldaan + "', `nogTeVoldoen` = '" + nogTeVoldoen + "', `date` = STR_TO_DATE ('" + date + "', '%d-%m-%Y') WHERE `players`.`id` = '" + playerId + "'";
        db.query(query, (err, result) => {
            if (err) {
                return res.status(500).send(err);
            }
            res.redirect('/homepageMTaartenAdmin');
        });
    },
    deletePlayer: (req, res) => {
        let playerId = req.params.id;
        let getImageQuery = 'SELECT image from `players` WHERE id = "' + playerId + '"';
        let deleteUserQuery = 'DELETE FROM players WHERE id = "' + playerId + '"';

        db.query(getImageQuery, (err, result) => {
            if (err) {
                return res.status(500).send(err);
            }

            let image = result[0].image;

            fs.unlink(`public/assets/img/${image}`, (err) => {
                if (err) {
                    return res.status(500).send(err);
                }
                db.query(deleteUserQuery, (err, result) => {
                    if (err) {
                        return res.status(500).send(err);
                    }
                    res.redirect('/homepageMTaartenAdmin');
                });
            });
        });
    },
    playerDetailsPage: (req, res) => {
        var user =  req.session.user,
        userId = req.session.userId;
            if(userId == null){
                res.render('login', {

                    message: 'Uw sessie is verlopen. Log A.U.B opnieuw in'
                }
                )};
                let playerId = req.params.id;
                let query = "SELECT * FROM `players` WHERE id = '" + playerId + "' ";
                db.query(query, (err, result) => {
                    if (err) {
                        return res.status(500).send(err);
                        console.log(err);
                    }
                    res.render('playerDetailsPage.ejs', {
                        title: 'Edit  Player'
                        ,player: result[0]
                        ,message: ''
                    });
                });
    }
};

пользователь. js

exports.login = function(req, res){
   var message = '';
   var sess = req.session; 

   if(req.method == "POST"){
      var post  = req.body;
      var name= post.user_name;
      var pass= post.password;

      var sql="SELECT id, first_name, last_name, user_name FROM `users` WHERE `user_name`='"+name+"' and password = '"+pass+"'";                           
      db.query(sql, function(err, results){      
         if(results.length){
            req.session.userId = results[0].id;
            req.session.user = results[0];
            console.log(results[0].id);
            res.redirect('/homepageMTaartenAdmin');
         }
         else{
            message = 'Wachtwoord of gebruikersnaam is incorrect.';
            res.render('login.ejs',{message: message});
         }

      });
   } 
   // else {
   //    res.render('index.ejs',{message: message});
   // }

};

exports.homepageMTaartenAdmin = function(req, res, next){

   var user =  req.session.user,
   userId = req.session.userId;
   console.log('ddd='+userId);
   if(userId == null){
      res.redirect("login");
      return;
   }

   var sql  = "SELECT * FROM `players` ORDER BY id ASC"; // query database to get all the players
   var sql1 = "SELECT achternaam, telefoonnummer, adres, email, typetaart, aantalpersonen, smaak, vulling, opmerking, prijs, reedsVoldaan, nogTeVoldoen, DATE_FORMAT(date, '%d-%m-%Y') date, image, user_name FROM `players` ORDER BY id ASC;"
   var sql2 = "SELECT p.*, DATE_FORMAT(date, '%d-%m-%Y') formatted_dateFROM `players` p ORDER BY id ASC";
   db.query(sql, function(err, result){
      res.render('homepageMTaartenAdmin', {players:result});    
      // console.log(result);
   });            
};

exports.homepageMTaarten = function(req, res, next){

   // var user =  req.session.user,
   // userId = req.session.userId;
   // console.log('ddd='+userId);
   // if(userId == null){
   //    res.redirect("login");
   //    return;
   // } else {
      res.redirect("homepageMTaarten");
   // }

   // var sql="SELECT * FROM `players` ORDER BY id ASC"; // query database to get all the players

   // db.query(sql, function(err, result){
   //    res.render('homepageMTaartenAdmin', {players:result});    
   //    // result = result.map
   // });       
};

exports.logout = function(req,res){

   req.session.destroy(function(err) {
      res.redirect('/');
   })
};
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...