• Почему при записи в mysql русского текста заносятся вопросительные знаки?

    @historydev Автор вопроса
    Кирилл Горелов, уже давно поправил,было такое еще до этого,но я думал что это пакет так таблицы создает,а это был проказник xammp :)
  • Почему при записи в mysql русского текста заносятся вопросительные знаки?

    @historydev Автор вопроса
    Кирилл Горелов, Верно,я не заметил,у меня xammp почему-то все текстовые поля латиницей окрещает :/
  • Почему ругается цикл(js)?

    @historydev Автор вопроса, куратор тега JavaScript
    Михаил, удалил кодировку у полей
  • Почему ругается цикл(js)?

    @historydev Автор вопроса, куратор тега JavaScript
    Михаил, спасибо,Михаил.
  • Почему ругается цикл(js)?

    @historydev Автор вопроса, куратор тега JavaScript
    Михаил, проблема решена, [ RowDataPacket { id: 1, email: 'John@mail.ru', password: 'Hancock' } ]
  • Почему ругается цикл(js)?

    @historydev Автор вопроса, куратор тега JavaScript
    Михаил, как я и предполагал,походу дело в кодировке,таблица была сгенерирована sequelize везде пусто в кодировке кроме email и пароля,там latin что-то там,сейчас пересоздам таблицу,посмотрим
  • Почему ругается цикл(js)?

    @historydev Автор вопроса, куратор тега JavaScript
  • Почему ругается цикл(js)?

    @historydev Автор вопроса, куратор тега JavaScript
    Михаил, такс,что-то не так,вбил запрос в pma,пусто,данные верно записаны
  • Почему ругается цикл(js)?

    @historydev Автор вопроса, куратор тега JavaScript
    Михаил, проходит
  • Почему ругается цикл(js)?

    @historydev Автор вопроса, куратор тега JavaScript
    Михаил, проверял,выводит то что я ввел,почту копировал из таблицы напрямую в поле,у меня было подобное когда копировал код,кодировка шалила,но здесь ошибок нет и я не могу понять в чем дело,там выскакивало мол юзаю не ту mysql версию
  • Почему ругается цикл(js)?

    @historydev Автор вопроса, куратор тега JavaScript
    Михаил, переставил вывод ошибки,ошибок в запросе нет,все чисто
  • Почему ругается цикл(js)?

    @historydev Автор вопроса, куратор тега JavaScript
    Михаил, в любом случае получаю [] изначально было
    "SELECT * FROM users WHERE email='"+email+"'"
  • Почему ругается цикл(js)?

    @historydev Автор вопроса, куратор тега JavaScript
    Михаил, вы подтолкнули меня на дорогу,я нашел то,что искал в самом начале пути,вот здесь
    То,что мне было нужно.Но теперь у меня новая проблема,у меня ответ пустой на запрос,почему-то..

    passport.use(new LocalStrategy({	usernameField: 'email'	},
    		function(email, password, done) {
    
    
    		  	connection.query("SELECT * FROM users WHERE email LIKE '"+email+"'",	function(err,res){
    
    				if (err) {
    					return done(null,false);
    					console.log(err);
    				}
    
    				else {
    
    					console.log(res);
    					return done(null,res);
    
    				}
    
    			});
    
    
    				// if (rows.length) {
        //         	    return done(null, false, req.flash('signupMessage', 'That email is already taken.'));
        //         	}
        //         	else {
    
    				// 	// if there is no user with that email
        //             	// create the user
        //             	var newUserMysql = new Object();
    				
    				// 	newUserMysql.email    = email;
        //             	newUserMysql.password = password; // use the generateHash function in our user model
    			
    				// 	var insertQuery = "INSERT INTO users ( email, password ) values ('" + email +"','"+ password +"')";
    				// 	console.log(insertQuery);
    
    				// 	connection.query(insertQuery,function(err,rows){
    				// 		newUserMysql.id = rows.insertId;				
    				// 		return done(null, newUserMysql);
    				// 	});
    				// }
    		}
    	))
  • Почему ругается цикл(js)?

    @historydev Автор вопроса, куратор тега JavaScript
    Михаил, ну,а как мне еще проверять?Я просто так всегда делал..Есть способ валидный?
  • Почему ругается цикл(js)?

    @historydev Автор вопроса, куратор тега JavaScript
    Михаил, Я стараюсь реализовать регистрацию и авторизацию с сессиями
  • Почему ругается цикл(js)?

    @historydev Автор вопроса, куратор тега JavaScript
    app.js:

    const express = require('express');
    const session = require('express-session');
    const FileStore = require('session-file-store')(session);
    const passport = require('passport');
    const app = express();
    const port = 3000;
    
    app.use(express.json());
    app.use(express.urlencoded({extended: false}));
    
    app.use(
    	session({
    		secret: "secret",
    		store: new FileStore(),
    		cookie: {
    			path: "/",
    			httpOnly: true,
    			maxAge: 60 * 60 * 1000
    		},
    		resave: false,
    		saveUnitialized: false
    	})
    );
    
    require('./config');
    app.use(passport.initialize());
    app.use(passport.session());
    
    const logout = (req,res,next) => {
    	if(req.isAuthenticated()) {
    		return res.redirect('/admin');
    	} else {
    		next()
    	}
    }
    
    app.get('/',logout, (req, res) => res.sendFile(__dirname + '/index.html'));
    
    app.post('/login', function(req, res, next) {
      passport.authenticate('local', function(err, user) {
        if (err) {
        	return next(err);
        }
        if (!user) { 
        	return res.redirect('/');
        	console.log(user);
        }
        req.logIn(user, function(err) {
          if (err) { 
          	return next(err);
          }
          return res.redirect('/admin');
        });
      })(req, res, next);
    });
    
    app.post('/register', function(req,res) {
    	User.create({ email: "Jane", password: "Doe" }).then(jane => {
      		console.log("Jane's auto-generated ID:", jane.id);
    	});
    });
    
    const auth = (req,res,next) => {
    	if(req.isAuthenticated()) {
    		next()
    	} else {
    		return res.redirect('/');
    	}
    }
    
    app.get('/admin', auth, (req, res) => {
    	res.send('Admin page');
    });
    
    app.get('/logout', (req,res) => {
    	req.logout();
    	res.redirect('/');
    });
    
    app.listen(port, () => console.log(`Example app listening on port ${port}!`));


    config.js(Вернул свой код):

    const passport = require('passport');
    const LocalStrategy = require('passport-local').Strategy;
    
    const Sequelize = require('sequelize');
    
    // Option 1: Passing parameters separately
    const sequelize = new Sequelize('test', 'root', '', {
      host: 'localhost',
      dialect: 'mysql',
      operatorsAliases: false,
      pool: {
        max: 5,
        min: 0,
        acquire: 30000,
        idle: 10000
      }
    
      // dialectOptions: {
      //   socketPath: '/Applications/MAMP/tmp/mysql/mysql.sock',
      //   supportBigNumbers: true,
      //   bigNumberStrings: true
      // },
    
    });
    
    sequelize
      .authenticate()
      .then(() => {
        console.log('Connection has been established successfully.');
      })
      .catch(err => {
        console.error('Unable to connect to the database:', err);
      });
    
    const User = sequelize.define('users', {
      // attributes
      email: {
        type: Sequelize.STRING,
        allowNull: false
      },
      password: {
        type: Sequelize.STRING
        // allowNull defaults to true
      }
    }, {
      // options
    });
    
    let userDB = null;
    
    sequelize
      .query('SELECT * FROM users', { raw: true })
      .then(users => {
      	const isIds = users[0].map(user => user.id);
      	const isEmails = users[0].map(user => user.email);
      	const isPasswords = users[0].map(user => user.password);
    
      	userDB = {
    		id: isIds,
    		email: isEmails,
    		password: isPasswords
    	}
    });
    
    for(i=0; i<userDB.id.length; i++){
    	passport.serializeUser(function(user, done) {
    		console.log("Serialize: ", user.email[i]);
    		  done(null, user.id[i]);
    	});
    	
    	passport.deserializeUser(function(id, done) {
    	  	console.log("Deserialize: ", id);
    	  	user = (userDB.id[i] === id) ? userDB : false;
    	  	done(null, user);
    	
    	});
    	
    	passport.use(new LocalStrategy({	usernameField: 'email'	},
    		function(email, password, done) {
    		  	console.log(email + '/' + password)
    		  	console.log(userDB.email[i].split(' ') + '/' + userDB.password[i].split(' '))
    		  	if(password == userDB.password[i]) {
    		  		console.log(userDB.email[i])
    		  		return done(null,userDB)
    		  	}
    		  	else {
    		  		console.log(userDB.password[i])
    		  		return done(null,false)
    		  	}
    		})
    	);
    }
  • Почему ругается цикл(js)?

    @historydev Автор вопроса, куратор тега JavaScript
    Михаил, извините,мой косяк,но данные undefined выдает..
  • Почему ругается цикл(js)?

    @historydev Автор вопроса, куратор тега JavaScript
    Михаил, резалт вашего кода

    TypeError: Cannot read property '40' of undefined
    at C:\Users\History\Desktop\session\config.js:73:26
    at pass (C:\Users\History\Desktop\session\node_modules\passport\lib\authenticator.js:357:9)
    at Authenticator.deserializeUser (C:\Users\History\Desktop\session\node_modules\passport\lib\authenticator.js:362:5)
    at SessionStrategy.authenticate (C:\Users\History\Desktop\session\node_modules\passport\lib\strategies\session.js:60:10)
    at attempt (C:\Users\History\Desktop\session\node_modules\passport\lib\middleware\authenticate.js:361:16)
    at authenticate (C:\Users\History\Desktop\session\node_modules\passport\lib\middleware\authenticate.js:362:7)
    at Layer.handle [as handle_request] (C:\Users\History\Desktop\session\node_modules\express\lib\router\layer.js:95:5)
    at trim_prefix (C:\Users\History\Desktop\session\node_modules\express\lib\router\index.js:317:13)
    at C:\Users\History\Desktop\session\node_modules\express\lib\router\index.js:284:7
    at Function.process_params (C:\Users\History\Desktop\session\node_modules\express\lib\router\index.js:335:12)
    at next (C:\Users\History\Desktop\session\node_modules\express\lib\router\index.js:275:10)
    at initialize (C:\Users\History\Desktop\session\node_modules\passport\lib\middleware\initialize.js:53:5)
    at Layer.handle [as handle_request] (C:\Users\History\Desktop\session\node_modules\express\lib\router\layer.js:95:5)
    at trim_prefix (C:\Users\History\Desktop\session\node_modules\express\lib\router\index.js:317:13)
    at C:\Users\History\Desktop\session\node_modules\express\lib\router\index.js:284:7
    at Function.process_params (C:\Users\History\Desktop\session\node_modules\express\lib\router\index.js:335:12)
    at next (C:\Users\History\Desktop\session\node_modules\express\lib\router\index.js:275:10)
    at C:\Users\History\Desktop\session\node_modules\express-session\index.js:495:7
    at readCallback (C:\Users\History\Desktop\session\node_modules\session-file-store\lib\session-file-helpers.js:184:20)
    at C:\Users\History\Desktop\session\node_modules\graceful-fs\graceful-fs.js:115:16
    at FSReqWrap.readFileAfterClose [as oncomplete] (internal/fs/read_file_context.js:53:3)
  • Почему ругается цикл(js)?

    @historydev Автор вопроса, куратор тега JavaScript
    Михаил, У меня паспорт подключен до в app.js
  • Почему ругается цикл(js)?

    @historydev Автор вопроса, куратор тега JavaScript
    Михаил, если рассуждать с обработкой цикла сразу после запроса,то его достаточно засунуть в then