Я новичок в node js, я слежу за серией узлов Traversy media, которой почти три года. Я создал регистрационную форму, но проблема в том, что когда я отправляю форму, страница вместо перенаправления на страницу входа в систему вызывает ошибку внешнего интерфейса ( скриншот ошибки ). Я не мог найти никакого решения для этого. Поэтому, пожалуйста, если кто-нибудь поможет мне.
Опубликованы соответствующие скриншоты.
Спасибо.
user. js (Route)
const express = require('express')
const router = express.Router()
const bcrypt = require('bcryptjs')
//User Model
let User = require('../models/user')
// Express Validator Middleware
const { check, validationResult } = require('express-validator/check');
//Register Form
router.get('/register', (req, res)=> {
res.render('register')
})
//Register Process
router.post('/register', [
check('name').notEmpty().withMessage('Name is required'),
check('email').notEmpty().withMessage('Email is required'),
check('email').isEmail().withMessage('Email is not valid'),
check('username').notEmpty().withMessage('Username is required'),
check('password').isEmpty().withMessage('Password is required'),
check('password2').matches('password').withMessage('Passwords do not match')
], (req, res)=> {
let user = new User({
name: req.body.name,
email: req.body.email,
username: req.body.username,
password: req.body.password,
password2: req.body.password2
})
//Get Errors
const errors = validationResult(req)
if(errors)
{
res.render('register', {
errors: errors
})
}
else
{
user.name = req.body.name;
user.email = req.body.email;
user.username = req.body.username;
user.password = req.body.password;
bcrypt.genSalt(10, (err, salt)=> {
bcrypt.hash(user.password, salt, (err, hash)=> {
if(err)
{
return
}
user.password = hash
user.save((err)=> {
if(err)
{
return
}
else
{
req.flash('success', 'You are now registered and can log in!')
res.redirect('/users/login')
}
})
})
})
}
})
router.get('/login', (req, res)=> {
res.render('login')
})
module.exports = router;
* модель пользователя *
const mongoose = require('mongoose')
//User Schema
const UserSchema = mongoose.Schema({
name:{
type: String,
reqiured: true
},
email:{
type: String,
reqiured: true
},
username:{
type: String,
reqiured: true
},
password:{
type: String,
reqiured: true
}
});
const User = module.exports = mongoose.model('User', UserSchema)
* регистрационная форма *
extends layout
block content
h1 Register
form(action="/users/register", method="post")
#form-group
label Name:
input.form-control(name="name" type="text")
#form-group
label Email:
input.form-control(name="email" type="text")
#form-group
label Username:
input.form-control(name="username" type="text")
#form-group
label Password:
input.form-control(name="password" type="password")
#form-group
label Confirm:
input.form-control(name="password2" type="password")
br
input.btn.btn-primary(type='submit', value='Submit')