使用Node.js和Express(node-mysql)操作MySQL

使用Node.js和Express(node-mysql)操作MySQL

在本文中,我们将介绍如何使用Node.js和Express框架中的node-mysql模块来操作MySQL数据库。MySQL是一种流行的关系型数据库管理系统,而Node.js是一种高效的服务器端JavaScript运行时平台。Node.js和Express可提供轻松的方式来开发具有高度可伸缩性的Web应用程序。使用node-mysql模块, Node.js的开发者可方便地与MySQL交互, 这模块提供了一些功能强大的API,使MySQL的操作变得更容易。

阅读更多:MySQL 教程

安装node-mysql模块

在项目目录下,使用以下命令来安装node-mysql模块:

npm install mysql
JavaScript

连接和查询MySQL数据库

首先需要为我们的应用程序设置MySQL的连接。以下是使用node-mysql模块连接MySQL数据库并进行查询的示例:

const mysql = require('mysql');

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

connection.connect((err) => {
    if (err) {
        console.error('error connecting: ' + err.stack);
        return;
    }

    console.log('connected as id ' + connection.threadId);
});

connection.query('SELECT * FROM mytable', (error, results, fields) => {
    if (error) throw error;
    console.log('The solution is: ', results[0].solution);
});

connection.end();
JavaScript

注意到connect和query函数都接收一个回调函数作为参数。在connect回调函数中,我们打印出了连接的线程ID。接着,我们执行了一个标准的SELECT查询,并打印出了查询结果的第一行solution列的值。

插入数据到MySQL数据库

接下来,我们将向MySQL数据库中插入一些数据。在node-mysql模块中,可以使用以下代码准备插入语句并将数据插入到MySQL表中:

const mysql = require('mysql');

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

connection.connect((err) => {
    if (err) {
        console.error('error connecting: ' + err.stack);
        return;
    }

    console.log('connected as id ' + connection.threadId);
});

const post = { title: 'Hello MySQL', body: 'MySQL is a great database!' };
connection.query('INSERT INTO posts SET ?', post, (err, results, fields) => {
  if (err) throw err;
  console.log(results.insertId);
});

connection.end();
JavaScript

我们首先定义了一个post变量,这个变量是一个对象包含Title和Body两个字段。在插入语句执行中, 使用问号占位符使我们不用拼接查询字符串,同时使用post变量代表占位符。在执行的回调函数中,我们打印出insertId,它代表insert操作的返回结果,也就是新插入的行的ID.

更新数据

要更新MySQL中的数据,可以使用以下查询语句:

const mysql = require('mysql');

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

connection.connect((err) => {
    if (err) {
        console.error('error connecting: ' + err.stack);
        return;
    }

    console.log('connected as id ' + connection.threadId);
});

connection.query(
    'UPDATE users SET username = ?, password = ? WHERE id = ?',
    ['newuser', 'newpassword', 1],
    (error, results, fields) => {
        if (error) throw error;
        console.log('Changed ' + results.changedRows + ' rows');
    }
);

connection.end();
JavaScript

此代码更新了id为1的用户。我们通过两个问号占位符和一个数组传递命令执行时用到的参数, changedRows是一个属性,返回实际更新的行数。

删除数据

最后,我们展示如何使用删除语句从MySQL中删除数据:

const mysql = require('mysql');

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

connection.connect((err) => {
    if (err) {
        console.error('error connecting: ' + err.stack);
        return;
    }

    console.log('connected as id ' + connection.threadId);
});

connection.query(
    'DELETE FROM users WHERE id = ?',
    [1],
    (error, results, fields) => {
        if (error) throw error;
        console.log('Deleted ' + results.affectedRows + ' rows');
    }
);

connection.end();
JavaScript

在此示例中,我们删除id为1的用户。我们使用了一个问号占位符和一个数组,以便传递ID。

总结

在本文中,我们学习了如何使用Node.js和Express框架中的node-mysql模块来操作MySQL数据库,包括建立连接、查询、插入数据、更新数据和删除数据。使用这些简单的代码示例,我们可以轻松地使用node-mysql模块与MySQL进行交互。这对于Web开发及其他需要与MySQL进行交互的应用程序而言都是非常重要的。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程

登录

注册