Categories: node.js

Create a Registration Form With Node.js & MySQL

A registration form is used to collect data from potential users of your website.

This is necessary, especially if you want these users to subscribe to a certain service in which they would have to login to access.

In this tutorial, we will look at how to create a registration form using Node.js and MySQL.

Let’s begin …

First, we create a MySQL database

CREATE TABLE `users` (
  `id` int(11) NOT NULL,
  `first_name` varchar(100) NOT NULL,
  `last_name` varchar(100) NOT NULL,
  `email` varchar(100) NOT NULL,
  `password` varchar(300) NOT NULL,
  `date_time` datetime NOT NULL DEFAULT current_timestamp()
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

What we want to do next is to create a package.json file where will install the dependencies that are necessary for this project to work.

//Create a package.json file
npm init --y

We will install other dependencies as follows:

npm install express --save // use express sever
npm install mysql //use mysql module
npm install nodemon //watch for file changes
npm install cryptr //encrypt our password

Next we create an index.html file where we will write our HTML code

<html>  
<body>  
 
<form action="/register-controller" method="POST">  
First Name: <input type="text" name="name">  
   
Email: <input type="text" name="email">
Paswword: <input type="password" name="password">
   
<input type="submit" value="Submit">  
</form>
</body>  
</html>  

Next we create a config.js file where we will make the database connection.

  var mysql      = require('mysql');
  var connection = mysql.createPool({
  host     : 'localhost',
  user     : 'root',
  password : '',
  database : 'test2',

  port: '8080'
});
connection.getConnection(function(err){
if(!err) {
    console.log("Database is connected");
} else {
    console.log(`Error while connecting with database ${err}` );
}
});
module.exports = connection; 

Moving forward, we create a controller file that will insert our collected data into the database.

var Cryptr = require('cryptr');
var express=require("express");
var connection = require('./config');
 cryptr = new Cryptr('myTotalySecretKey');
 
module.exports.register=function(req,res){
    var today = new Date();
  var encryptedString = cryptr.encrypt(req.body.password);
    var users={
        "name":req.body.name,
        "email":req.body.email,
        "password":req.body.password,
        "created_at":today,
        "updated_at":today
    }
    connection.query('INSERT INTO users SET ?',users, function (error, results, fields) {
      //connection.release()
      if (error) {
        res.json({
            status:false,
            message:'there are some error with query'
        })
      }else{
          res.json({
            status:true,
            data:results,
            message:'user registered successfully'
        })
      }
    });
}

Your result should look like this:

Recent Posts

Why parseInt(’09’) Returns 0

If you've ever encountered the puzzling behavior of parseInt('09') returning 0 in JavaScript, you're not…

3 days ago

Event Bubbling and Capturing: Why Your Click Listener Fires Twice (And How to Fix It)

If you’ve ever built an interactive web application, you may have encountered a puzzling issue:…

2 weeks ago

Practical Array Methods for Everyday Coding

Arrays are the backbone of programming, used in nearly every application. Whether you're manipulating data,…

2 weeks ago

What the Heck Is the Event Loop? (Explained With Pizza Shop Analogies)

If you've ever tried to learn JavaScript, you’ve probably heard about the "Event Loop"—that mysterious,…

2 weeks ago

Why [] === [] Returns false in JavaScript (And How to Properly Compare Arrays & Objects)

JavaScript can sometimes behave in unexpected ways, especially when comparing arrays and objects. If you've…

2 weeks ago

Recursion for Beginners

Recursion is a programming technique where a function calls itself to solve smaller instances of…

3 weeks ago