Home > Web Front-end > JS Tutorial > Basic tutorial on operating MySQL database in Node.js

Basic tutorial on operating MySQL database in Node.js

不言
Release: 2018-10-29 13:57:39
forward
2984 people have browsed it

This article brings you a basic tutorial on operating the MySQL database in Node.js. It has certain reference value. Friends in need can refer to it. I hope it will be helpful to you.

This article is a basic tutorial on using the npm module mysql to operate the MySQL database. It does not involve the installation and configuration of MySQL. If MySQL is not installed on the computer, It is recommended to install integrated environments such as WAMP and XAMPP. This article also uses the lightweight Node.js framework Koa to build a web program in order to simulate project scenarios through front-end browser requests. You can easily read this article without mastering the syntax of the Koa framework.

Initialize the project

Create the project directory and use npm initAfter initializing the project, perform the following operations:

Install dependencies

npm install mysql koa koa-router
Copy after login

Create index.js

// index.js

const Koa = require('koa');
const Router = require('koa-router');
const mysql = require('mysql');

const app = new Koa();
const router = new Router();

const connection = mysql.createConnection({
  host: 'localhost', // 填写你的mysql host
  user: 'root', // 填写你的mysql用户名
  password: '123456' // 填写你的mysql密码
})

connection.connect(err => {
  if(err) throw err;
  console.log('mysql connncted success!');
})

router.get('/', ctx => {
  ctx.body = 'Visit index';
})
app.use(router.routes());

app.listen(3000);
Copy after login

Execute node index.js in the shell. When you see mysql connected success! printed in the shell, it indicates that the MySQL database connection is successful.

Basic tutorial on operating MySQL database in Node.js

Open the browser and visit localhost:3000. When you see Visit index displayed on the screen, the table name Project initialization was successful.

Basic tutorial on operating MySQL database in Node.js

Database operation

Create database

When accessing /createdb, create a mysqlkoa database, code As follows:

router.get('/createdb', ctx => {
  return new Promise(resolve => {
    const sql = `CREATE DATABASE mysqlkoa`;

    connection.query(sql, (err) => {
      if (err) throw err;
      ctx.body = {
        code: 200,
        msg: `create database mysqlkoa success!`
      }
      resolve();
    });
  })
})
Copy after login

Re-execute node index.js, and use the browser to access localhost:3000/createdb

<img src="https://img.php.cn//upload/image/332/781/973/1540792367149822.png" title="1540792367149822.png" alt="Basic tutorial on operating MySQL database in Node.js">

Create a data table

For convenience, we directly use the database we just created when connecting. We need to add the database:mysqlkoa configuration item in mysql.createConnection.

const connection = mysql.createConnection({
  host: 'localhost',
  user: 'root',
  password: '123456',
  database: 'mysqlkoa' // 添加该列
})
Copy after login

When accessing /createtable, we create a data table fe_frame, which is used to save the data of the front-end frame:

router.get('/createtable', ctx => {
  return new Promise(resolve => {
    const sql = `CREATE TABLE fe_frame(
      id INT(11) AUTO_INCREMENT PRIMARY KEY,
      name VARCHAR(255),
      author VARCHAR(255)
    )`;
    connection.query(sql, (err ,results, filelds) => {
      if (err) throw err;
      ctx.body = {
        code: 200,
        msg: `create table of fe_frame success!`
      }
      resolve();
    })
  })
})
Copy after login

Re-execute node index.js and use the browser to access localhost :3000/createtable

<img src="https://img.php.cn//upload/image/332/781/973/1540792367149822.png" title="1540792367149822.png" alt="Basic tutorial on operating MySQL database in Node.js">

Insert data

Insert a single piece of data

When accessing/insert, used to insert a single piece of data:

router.get('/insert', ctx => {
  return new Promise(resolve => {
    const sql = `INSERT INTO fe_frame(name, author)
    VALUES('vue', 'Evan')`;
    connection.query(sql, (err) => {
      if (err) throw err;
      ctx.body = {
        cde: 200,
        msg: `insert data to fe_frame success!`
      }
      resolve();
    })
  })
})
Copy after login

Re-execute node index.js, and use the browser to access localhost:3000/insert

Basic tutorial on operating MySQL database in Node.js

Insert multiple pieces of data

When accessing /insertmulti, it is used to insert multiple pieces of data:

router.get('/insertmulti', ctx => {
  return new Promise(resolve => {
    const sql = `INSERT INTO fe_frame(name, author)
    VALUES ?`;
    const values = [
      ['React', 'Facebook'],
      ['Angular', 'Google'],
      ['jQuery', 'John Resig']
    ];
    connection.query(sql, [values], (err, result) => {
      if (err) throw err;
      ctx.body = {
        code: 200,
        msg: `insert ${result.affectedRows} data to fe_frame success!`        
      }
      resolve();
    })
  })
})
Copy after login

Re-execute node index.js and use Browser access localhost:3000/insertmulti

Basic tutorial on operating MySQL database in Node.js

Use phpMyAdmin to access, you can see that the mysqlkoa table is as follows

Basic tutorial on operating MySQL database in Node.js

Delete data

When accessing /delete, delete the corresponding row. We use the request parameter name to specify which frame to delete, and use ctx.query.name to obtain it on the server side. The code is as follows:

router.get('/delete', ctx => {
  return new Promise(resolve => {
    const name = ctx.query.name;
    const sql = `DELETE FROM fe_frame WHERE name = '${name}'`;
    connection.query(sql, (err, result) => {
      if (err) throw err;
      ctx.body = {
        code: 200,
        msg: `delete ${result.affectedRows} data from fe_frame success!`
      };
      resolve();
    })
  })
})
Copy after login

Re-execute node index.js, and use the browser to access http://localhost: 3000/delete?name=jQuery

Basic tutorial on operating MySQL database in Node.js

Modify data

When accessing /update, the author of the updated vue framework is named Evan You, the code is as follows:

router.get('/update', ctx => {
  return new Promise(resolve => {
    const sql =  `UPDATE fe_frame SET author = 'Evan You' WHERE NAME = 'vue'`;
    connection.query(sql, (err, result) => {
      if (err) throw err;
      ctx.body = {
        code: 200,
        msg: `update ${result.affectedRows} data from fe_frame success!`
      };
      resolve();
    })
  })
})
Copy after login

Re-execute node index.js, and use the browser to access http://localhost:3000/update

Basic tutorial on operating MySQL database in Node.js

Find data

When accessing /select, obtain items that meet the conditions of the frame name in the request parameters. The code is as follows:

router.get('/select', ctx => {
  return new Promise(resolve => {
    let name = ctx.query.name;
    const sql = `SELECT * FROM fe_frame WHERE name = '${name}'`;
    connection.query(sql, (err, result) => {
      if (err) throw err;
      ctx.body = {
        code: 200,
        data: result
      }
      resolve();
    })
  })
})
Copy after login

Re-execute node index.js, and Use a browser to access http://localhost:3000/select?name=vue

Basic tutorial on operating MySQL database in Node.js

The above is the detailed content of Basic tutorial on operating MySQL database in Node.js. For more information, please follow other related articles on the PHP Chinese website!

source:segmentfault.com
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template