Node.js with Express and MySQL scaffold

Scaffolding and Trussing
Reading Time: 2 minutes

Node.js is a popular platform for building server-side applications, while Express is a widely used Node.js framework for building web applications. MySQL is a popular open-source relational database management system used to store and manage data. In this blog post, we will discuss how to scaffold a Node.js and Express application with MySQL.

What is scaffolding?

Scaffolding is a technique used in software development to generate code templates that can be used as a starting point for building an application. Scaffolding helps developers save time by providing a starting point with pre-built functionality, structures, and design patterns. With scaffolding, developers can focus on customizing and extending the generated code to fit their specific application needs.

Scaffolding a Node.js and Express application with MySQL

To scaffold a Node.js and Express application with MySQL, we will use a package called express-generator. Express-generator is a command-line tool that generates a basic Express application structure with some pre-defined routes, views, and middleware.

Here are the steps to scaffold a Node.js and Express application with MySQL:

Step 1: Install Node.js and MySQL

Before we begin, make sure you have Node.js and MySQL installed on your machine. You can download and install them from their respective websites.

Step 2: Install express-generator

Open a terminal or command prompt and run the following command to install express-generator globally:

npm install -g express-generator

Step 3: Scaffold the Express application

Next, run the following command to scaffold a basic Express application:

express --view=ejs myapp

This command generates a new Express application called myapp with EJS as the view engine.

Step 4: Install MySQL package

To use MySQL in our application, we need to install the mysql package. Run the following command in your terminal:

npm install --save mysql

Step 5: Set up a database connection

We need to set up a connection to our MySQL database. Create a new file called db.js in the myapp directory and add the following code:

const mysql = require('mysql');

const connection = mysql.createConnection({
  host: 'localhost',
  user: 'root',
  password: 'yourpassword',
  database: 'myappdb'
});

connection.connect((err) => {
  if (err) {
    console.error('Error connecting to MySQL database: ', err);
    return;
  }
  console.log('Connected to MySQL database');
});

module.exports = connection;

Replace the values for the user, password, and database properties with your own values.

Step 6: Create a database table

Create a new file called users.sql in the myapp directory and add the following SQL code:

CREATE TABLE IF NOT EXISTS users (
  id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
  name VARCHAR(255) NOT NULL,
  email VARCHAR(255) NOT NULL,
  created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);

This creates a new table called users with four columns: id, name, email, and created_at.

Step 7: Create a model

Create a new file called user.js in the myapp/models directory and add the following code:

const db = require('../db');

const selectAll  = (cb) =>{
  db.query('SELECT * FROM users', (err, results) => {
    if (err) {
      return cb(err);
    }
    cb(null, results);
  });
};

const insert = (name, email, cb)  => {
  const sql = 'INSERT INTO users (name, email) VALUES (?, ?)';
  db.query(sql, [name, email],(err, results) => {
    if (err) {
      return cb(err);
    }
    cb(null, results);
  });
};
, ,

About the author

Andrés Canavesi
Andrés Canavesi

Software Engineer with 15+ experience in software development, specialized in Salesforce, Java and Node.js.


Related posts


Leave a Reply

%d bloggers like this: