CRUD in Node.js

It’s quite fun to learn stuff by examples, today I explored Node.js and made CRUD example.

In this post you will see very basic implementation of CRUD in Node.js, for those who don’t know what is Node.js. It is an open source server side environment. That’s allows to run Javascript on the server.

CRUD code example requires following node packages:

  • mysql
  • randomstring

Run following commands in project folder.

npm i randomstring
npm i mysql

Create a db.js file to place mysql connection configuration.

var mysql = require("mysql");
exports.dbConnection = function() {
  return mysql.createConnection({
    host: "0.0.0.0",
    user: "root",
    password: "hello-password",
    port: "3306",
    database: "test"
  });
};

Now let’s create crud.js that contains CRUD actions (CREATE/READ/UPDATE/DELETE)

var randomstring = require("randomstring");
var db = require("./db");

let con = db.dbConnection();

con.connect(function(err) {
  if (err) throw err;
});

function all() {
  let sql = "Select * from users";
  con.query(sql, function(err, users) {
    if (err) throw err;
    users.forEach((user, i) => {
      console.log(user);
    });
  });
}

function get(id) {
  let sql = "Select * from test.users where id=" + id;
  con.query(sql, function(err, users) {
    if (err) throw err;
    users.forEach((user, i) => {
      console.log(user);
    });
  });
}

function insert() {
  let username = randomstring.generate(12);
  var sql =
    "INSERT INTO users (username, email) VALUES ('" +
    username +
    "', '" +
    username +
    "@test.dk')";
  con.query(sql, function(err, result) {
    if (err) throw err;
    console.log("1 record inserted");
  });
}

function update(id, username) {
  var sql = "UPDATE users SET username = '" + username + "' WHERE id =" + id;
  con.query(sql, function(err, result) {
    if (err) throw err;
    console.log(result.affectedRows + " record(s) updated");
  });
}

function remove(id) {
  var sql = "DELETE FROM users WHERE id =" + id;
  con.query(sql, function(err, result) {
    if (err) throw err;
    console.log("Number of records deleted: " + result.affectedRows);
  });
}

insert();
all();

update(1, randomstring.generate(12));
remove(1);

Users table create query:

CREATE TABLE `users` (
  `id` int(11) unsigned NOT NULL AUTO_INCREMENT,
  `username` varchar(255) DEFAULT NULL,
  `email` varchar(255) DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=12 DEFAULT CHARSET=latin1;
Author: Danyal
I'm a skilled programmer specializing in Vue.js/Nuxt.js for front-end development and PHP Laravel for back-end solutions. I have a strong focus on API design and development, complemented by experience in web server setup and maintenance. My versatile expertise ensures seamless creation and maintenance of web applications, covering everything from intuitive user interfaces to robust server-side functionality. Passionate about coding and driven by a lifelong learning mindset, I invite you to explore more at danyal.dk.