Display error with nodejs-mysql and ejs template

Hello, When I try to submit an error message in my page with the ejs template it gives me a message is undefined

folder controllers

const postRegister =  (req, res) =>{
 

    const {name, email, password, password2} = req.body
    console.log(req.body);
    bd.query('SELECT email FROM users WHERE email = ?', [email], async (err, results) =>{
        if(err) console.log(err);
           if(results.length > 0){
            return res.render('register', {message: "l'email existe déja"})
             
           
        } else if(password !== password2){
            return res.render('register', {message: "les mots de passe ne sont pas identiques"})
        }

        let haspassword = await bcrypt.hash(password, 8)
      
    bd.query('INSERT INTO users SET ?', {name: name, email: email, password: haspassword}, (err, results) =>{
        if(err){
            console.log(err)
        } else{
            console.log(results);
            return res.render('register', {
                message: 'Félicitation, vous êtes enregistrés'
            })
        }

    })

    })
 
}

folder page ejs

 <%   if (message)      { %>
        <div class="mt-5 mb-3">
          <div class="alert alert-warning alert-dismissible fade show" role="alert">
            <strong><%=  message  %></strong>
            <button type="button" class="btn-close" data-bs-dismiss="alert" aria-label="Close"></button>
          </div>
        </div> 
      <% }    %>
    
     
      <div class="mt-5 bg-dark text-white">
        <form method="POST"  action ='/ajouterPost'  class="p-5">
          <div class="mb-3">
            <label for="exampleInputName1" class="form-label">Name Complet</label>
            <input type="text" class="form-control" id="name" aria-describedby="nameHelp" name ='name'>
          </div>

          <div class="mb-3">
            <label for="exampleInputEmail1" class="form-label">Email address</label>
            <input type="email" class="form-control" id="email" aria-describedby="emailHelp" name ='email'>
          </div>
          <div class="mb-3">
            <label for="exampleInputPassword1" class="form-label">Password</label>
            <input type="password" class="form-control" id="password" name="password">
          </div>
          <div class="mb-3">
            <label for="exampleInputPassword2" class="form-label">verifie Password</label>
            <input type="password" class="form-control" id="password2" name ='password2'>
          </div>
          <button type="submit" class="btn btn-primary form-control">Submit</button>
        </form>
      </div>
    </div>

RESULTS ERROR

ReferenceError: D:\Node js\login-mysql\views\register.ejs:20
    18|      </div>

    19|    

 >> 20|       <%   if (message)      { %>

    21|         <div class="mt-5 mb-3">

    22|           <div class="alert alert-warning alert-dismissible fade show" role="alert">

    23|             <strong><%=  message  %></strong>


message is not defined
    at eval (eval at compile (D:\Node js\login-mysql\node_modules\ejs\lib\ejs.js:662:12), <anonymous>:18:10)
    at register (D:\Node js\login-mysql\node_modules\ejs\lib\ejs.js:692:17)
    at tryHandleCache (D:\Node js\login-mysql\node_modules\ejs\lib\ejs.js:272:36)
    at View.exports.renderFile [as engine] (D:\Node js\login-mysql\node_modules\ejs\lib\ejs.js:489:10)
    at View.render (D:\Node js\login-mysql\node_modules\express\lib\view.js:135:8)
    at tryRender (D:\Node js\login-mysql\node_modules\express\lib\application.js:640:10)
    at Function.render (D:\Node js\login-mysql\node_modules\express\lib\application.js:592:3)
    at ServerResponse.render (D:\Node js\login-mysql\node_modules\express\lib\response.js:1012:7)
    at getRegsiter (D:\Node js\login-mysql\controllers\index.js:19:9)
    at Layer.handle [as handle_request] (D:\Node js\login-mysql\node_modules\express\lib\router\layer.js:95:5)
type or paste code here

I found the problem here is the result

<%   if(typeof message != "undefined" && message) { %>

        <div class="mt-5 mb-3">

          <div class="alert alert-warning alert-dismissible fade show" role="alert">

            <strong><%=  message  %></strong>

            <button type="button" class="btn-close" data-bs-dismiss="alert" aria-label="Close"></button>

          </div>

        </div> 

      <% }    %>
1 Like

This topic was automatically closed 182 days after the last reply. New replies are no longer allowed.