Ошибка не может отправить / с express и узел - PullRequest
0 голосов
/ 01 апреля 2020

Я делаю приложение с узлом и express, проблема в том, что я могу отправить что-то в свою базу данных MYSQL, и я могу получить данные, но я получаю ошибку, которая говорит, что не может POST / registrarme, в консоли я получаю сообщение: POST / registrarme 404 Это мой код:

const passport = require('passport');
const LocalStrategy = require('passport-local').Strategy;

const pool = require('../database');
const helpers = require('../lib/helpers')


passport.use('local.registrarme', new LocalStrategy({
    usernameField: 'email',
    passwordField: 'contrasena',
    passReqToCallback: true   
}, async(req,email, contrasena, done) =>{
    const { dni, nombre, apellido1, apellido2, direccion, telefono, id_poblacion} = req.body;
    const nuevousuario  = {
        email: email,
        contrasena: contrasena,
        dni,
        nombre,
        apellido1,
        apellido2,
        direccion,
        telefono,
        id_poblacion,
    };
    nuevousuario.contrasena = await helpers.encryptPassword(contrasena);

   const result=  await pool.query('INSERT INTO PERSONAS SET ?', [nuevousuario]);
   console.log(result);
    nuevousuario.id= result.insertId;
  return done(null, nuevousuario);
}));


 passport.serializeUser((user, done) =>{
  done(null, user.id);

});


passport.deserializeUser(async (id, done) =>{
   const rows = await pool.query('SELECT * FROM PERSONAS WHERE id = ?', [id]);
   done(null,rows[0]);
});

И это мой код маршрутизатора:

const express = require('express');
const router = express.Router();
const passport = require('passport');

//renderizar los datos
router.get('/registrarme', (req,res) =>{
    res.render('auth/registrarme')
});

//ruta para recibir los datos


router.post('/registrarme', passport.authenticate('local.registrarme',{
    succesRedirect: '/perfil',
    failureRedirect: '/registrarme',
    failureFlash: true
}))

//ruta perfil
router.get('/perfil', (req,res) =>{
    res.send('Este es tu perfil')
});


module.exports = router;

Когда я могу отправить элементы в базу данных, я хочу, чтобы страница перенаправила меня на / perfil, но я получаю эту ошибку

1 Ответ

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

В вашем маршруте, похоже, отсутствует последняя функция, которая должна быть запущена, после всего промежуточного программного обеспечения. Измените его на:

router.post('/registrarme', passport.authenticate('local.registrarme', {
    succesRedirect: '/perfil',
    failureRedirect: '/registrarme',
    failureFlash: true
}), (req, res) => {
    console.log('registrarme route!')
})
...