Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/36.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 未定义变量(错误)_Javascript_Node.js_Express_Ejs - Fatal编程技术网

Javascript 未定义变量(错误)

Javascript 未定义变量(错误),javascript,node.js,express,ejs,Javascript,Node.js,Express,Ejs,我尝试将errors变量(在本例中它是一个修复程序)从服务器发送到客户端,在客户端中它使用ejs模板引擎显示错误 该变量列出了错误medainte push,我在error.ejs中检索它们 问题是它没有意识到这一点 非常感谢 user.controller.js const usersController = {}; usersController.renderSignUpForm = (req, res) => { res.render('users/signup'); }

我尝试将errors变量(在本例中它是一个修复程序)从服务器发送到客户端,在客户端中它使用ejs模板引擎显示错误

该变量列出了错误medainte push,我在error.ejs中检索它们

问题是它没有意识到这一点

非常感谢


user.controller.js

const usersController = {};

usersController.renderSignUpForm = (req, res) => {
    res.render('users/signup');
};

usersController.signUp = (req, res) => {
    let errors = [];
    const { name, email, password, confirmPassword } = req.body;
    console.log(req.body);
    if (password != confirmPassword) {
        errors.push({ text: 'Passwords do not match' });
    }
    if (password.length < 8) {
        errors.push({ text: 'Passwords must be a least 8 characters.' });
    }
    if (errors.length > 0) {
        res.render("users/signup", {
            errors,
            name,
            email,
            password,
            confirmPassword
        });
    } else {
        res.send('sign up successfully');
    }
};

module.exports = usersController; 
   <div class="container mt-4">
        <% for( let i = 1; i < errors.length; i++) {%>
            <div class="alert alert-danger alert-dismissible fade show" role="alert">
                <%= errors[i].text %>
                    <button type="button" class="close" data-dismiss="alert" aria-label="Close">
                 <span aria-hidden="true">&times;</span>
            </button>
            </div>
            <% } %>
    </div>
const { Router } = require('express');
const router = Router();

//Importing Controllers
const { renderSignUpForm, signUp, renderSignInForm, signIn, logOut } = require('../controllers/users.controllers');

router.get('/users/signup', renderSignUpForm);

router.post('/users/signup', signUp);

router.get('/users/signin', renderSignInForm);

router.post('/users/signin', signIn);

router.get('/users/logout', logOut);

module.exports = router;
<%- include('../partials/head.ejs')%>
    <div class="container mt-4">
        <div class="row">
            <div class="col-md-4 mx-auto">
                <div class="card">
                    <div class="card-header">
                        <i class="fa fa-user-plus mr-2" aria-hidden="true"></i> Account Register
                    </div>
                    <div class="card-body">
                        <form action="/users/signup" method="POST">
                            <div class="form-group">
                                <label for="inputName">Name<i class="fa fa-user ml-2" aria-hidden="true"></i></label>
                                <input type="text" name="name" class="form-control" id="inputName" placeholder="Name" autocomplete="off" autofocus>
                            </div>
                            <div class="form-group">
                                <label for="inputEmail">Email address<i class="fa fa-envelope-o ml-2" aria-hidden="true"></i></label>
                                <input type="email" name="email" class="form-control" id="inputEmail" placeholder="Email" autocomplete="off">
                            </div>
                            <div class="form-group">
                                <label for="inputPassword">Password<i class="fa fa-unlock-alt ml-2" aria-hidden="true"></i></label>
                                <input type="password" name="password" class="form-control" id="inputPassword" placeholder="Password" autocomplete="current-password">
                            </div>
                            <div class="form-group">
                                <label for="confirmPassword">Confirm Password<i class="fa fa-unlock-alt ml-2" aria-hidden="true"></i></label>
                                <input type="password" name="confirmPassword" class="form-control" id="confirmPassword" placeholder="Confirm Password" autocomplete="current-password">
                            </div>
                            <div class="form-group">
                                <button class="btn btn-danger btn-block">Sign Up</button>
                            </div>
                        </form>
                    </div>
                </div>
            </div>
        </div>
    </div>

    <%- include('../partials/error.ejs')%>
        <%- include('../partials/footer.ejs')%>
注册。ejs

const usersController = {};

usersController.renderSignUpForm = (req, res) => {
    res.render('users/signup');
};

usersController.signUp = (req, res) => {
    let errors = [];
    const { name, email, password, confirmPassword } = req.body;
    console.log(req.body);
    if (password != confirmPassword) {
        errors.push({ text: 'Passwords do not match' });
    }
    if (password.length < 8) {
        errors.push({ text: 'Passwords must be a least 8 characters.' });
    }
    if (errors.length > 0) {
        res.render("users/signup", {
            errors,
            name,
            email,
            password,
            confirmPassword
        });
    } else {
        res.send('sign up successfully');
    }
};

module.exports = usersController; 
   <div class="container mt-4">
        <% for( let i = 1; i < errors.length; i++) {%>
            <div class="alert alert-danger alert-dismissible fade show" role="alert">
                <%= errors[i].text %>
                    <button type="button" class="close" data-dismiss="alert" aria-label="Close">
                 <span aria-hidden="true">&times;</span>
            </button>
            </div>
            <% } %>
    </div>
const { Router } = require('express');
const router = Router();

//Importing Controllers
const { renderSignUpForm, signUp, renderSignInForm, signIn, logOut } = require('../controllers/users.controllers');

router.get('/users/signup', renderSignUpForm);

router.post('/users/signup', signUp);

router.get('/users/signin', renderSignInForm);

router.post('/users/signin', signIn);

router.get('/users/logout', logOut);

module.exports = router;
<%- include('../partials/head.ejs')%>
    <div class="container mt-4">
        <div class="row">
            <div class="col-md-4 mx-auto">
                <div class="card">
                    <div class="card-header">
                        <i class="fa fa-user-plus mr-2" aria-hidden="true"></i> Account Register
                    </div>
                    <div class="card-body">
                        <form action="/users/signup" method="POST">
                            <div class="form-group">
                                <label for="inputName">Name<i class="fa fa-user ml-2" aria-hidden="true"></i></label>
                                <input type="text" name="name" class="form-control" id="inputName" placeholder="Name" autocomplete="off" autofocus>
                            </div>
                            <div class="form-group">
                                <label for="inputEmail">Email address<i class="fa fa-envelope-o ml-2" aria-hidden="true"></i></label>
                                <input type="email" name="email" class="form-control" id="inputEmail" placeholder="Email" autocomplete="off">
                            </div>
                            <div class="form-group">
                                <label for="inputPassword">Password<i class="fa fa-unlock-alt ml-2" aria-hidden="true"></i></label>
                                <input type="password" name="password" class="form-control" id="inputPassword" placeholder="Password" autocomplete="current-password">
                            </div>
                            <div class="form-group">
                                <label for="confirmPassword">Confirm Password<i class="fa fa-unlock-alt ml-2" aria-hidden="true"></i></label>
                                <input type="password" name="confirmPassword" class="form-control" id="confirmPassword" placeholder="Confirm Password" autocomplete="current-password">
                            </div>
                            <div class="form-group">
                                <button class="btn btn-danger btn-block">Sign Up</button>
                            </div>
                        </form>
                    </div>
                </div>
            </div>
        </div>
    </div>

    <%- include('../partials/error.ejs')%>
        <%- include('../partials/footer.ejs')%>

账户登记簿
名称
电子邮件地址
密码
确认密码
注册

您开始按位置0运行错误数组; 数组从位置0开始,将其更改为从零开始

 <div class="container mt-4">
    <% for( let i = 0; i < errors.length; i++) {%>
        <div class="alert alert-danger alert-dismissible fade show" role="alert">
            <%= errors[i].text %>
                <button type="button" class="close" data-dismiss="alert" aria-label="Close">
             <span aria-hidden="true">&times;</span>
        </button>
        </div>
        <% } %>
</div>

&时代;