error.push ({""}) не работает в форме руля - PullRequest
0 голосов
/ 02 июня 2019

Когда я отправляю форму HTML / handlebars, она не отображает никаких ошибок, я думаю, что error.push () не работает, и страница ничего не делает, просто остается в бесконечной загрузке, вот код подтверждения ошибки имаршруты, которые я сделал:

const express = require('express')
const router = express.Router()
const mongoose = require('mongoose')
require('../models/User')
const User = mongoose.model('users')

router.get('/register' , (req, res) => {
    res.render('users/register')     
})

router.post("/register", (req, res) => {

    let error = [];

    if(!req.body.name || typeof req.body.name == undefined || req.body.name == null){
        error.push({text: 'Invalid name!'})
    }

    if(!req.body.email || typeof req.body.email == undefined || req.body.email == null){
        error.push({text: 'Invalid e-mail'})
    }

    if(!req.body.passwd || typeof req.body.passwd == undefined || req.body.passwd == null){
        erros.push({text: 'Invalid password'})
    }

    if(req.body.passwd.lenght < 4){
        error.push({text: 'Password is too short'})
    }

    if(req.body.passwd != req.body.passwd2){
        error.push({text: 'Different passwords'})
    }

    if(error.lenght > 0){

        res.render('users/register', {error: error})

    }else{

    }

})


module.exports = router

А вот формы HTML / handlebars, которые я сделал:

{{#each error}}
    <div class="alert alert-danger">{{text}}</div>
{{else}}
{{/each}}
<h1>Registre sua conta:</h1>
<div class="card">
    <div class="card-body">
        <form action="" method="POST">
            <label for="name">Name: </label>
                <input type="text" name="name" class="form-control" required>
            <label for="email">E-mail: </label>
                <input type="email" name="email" class="form-control" required>
            <label for="passwd">Password: </label>
                <input type="password" name="passwd" class="form-control" required>
            <label for="passwd2">Repeat Password: </label>
                <input type="password" name="spasswd2" class="form-control" required>
            <button type="submit" class="btn btn-success mt-4">Create account</button>
        </form>
    </div>
</div>
...