Node.js使用MySQL示例

Node.js是一种流行的编程语言,如用于Web应用程序的PHP和JAVA。此外,MySQL是用于存储值的最流行的数据库。Node.js的MySQL数据库驱动程序在NPM存储库下可用。在本教程中,您将学习如何使用node连接MySQL数据库.js并对MySQL数据库表执行INSERT,UPDATE,SELECT和DELETE操作。

步骤 1 – 创建 MySQL 数据库和表

首先,在MySQL中为您的应用程序创建数据库和用户。出于测试目的,我们正在创建mydb数据库并使用它。

mysql> CREATE DATABASE mydb;
mysql> USE mydb;

现在创建一个用于执行插入、更新和删除操作的示例表。

CREATE TABLE users (
  id int(11) NOT NULL AUTO_INCREMENT,
  firstname varchar(30),
  lastname varchar(30),
  email VARCHAR(50),
  creation_date TIMESTAMP,
  PRIMARY KEY (id)
) ENGINE=InnoDB  DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;

还要创建一个 mysql 用户,用于从应用程序访问数据库。

mysql> GRANT ALL on mydb.* to 'myusr'@'localhost' identified by '123456';
mysql> FLUSH PRIVILEGES;

2. 安装节点.js MySQL 模块

用于 node.js 的 MySQL 驱动程序在节点包管理器 (NPM) 下可用。使用以下命令进行安装。

sudo npm install mysql

3.连接MySQL的简单应用程序

下面是一个示例节点.js程序,它将节点.js应用程序与MySQL服务器连接。它将根据连接结果显示成功和错误消息,并在程序结束时关闭连接。创建一个 JavaScript 文件应用.js

cd myApp
vim app.js

并将以下内容添加到上面的文件中。

var mysql = require('mysql');
var dbconn = mysql.createConnection({
    host: 'localhost',
    user: 'root',
    password: 'root',
    database: 'blob'
});

dbconn.connect(function (err) {
    if (err) {
        console.log('Database connection error');
    } else {
        console.log('Database connection successful');
    }
});

dbconn.end(function (err) {
    // Function to close database connection
});

现在使用nodejs执行上述脚本,并确保数据库是否正确连接。

node app.js

Database connection successful

3. 在 MySQL 表中插入数据

现在,在上面的脚本中添加代码以在 mydb 数据库的用户表中插入数据。

var mysql = require('mysql');
var dbconn = mysql.createConnection({
    host: 'localhost',
    user: 'root',
    password: 'root',
    database: 'blob'
});

dbconn.connect(function (err) {
    if (err) {
        console.log('Database connection error');
    } else {
        console.log('Database connection successful');
    }
});

var record = {firstname: 'Rahul', lastname: 'Kumar', email: 'abc@domain.com'};

dbconn.query('INSERT INTO users SET ?', record, function (err, res) {
    if (err)
        throw err;

    console.log('Last record insert id:', res.insertId);
});

dbconn.end(function (err) {
    // Function to close database connection
});

现在,使用命令行执行 app.js 脚本,并确保数据正确插入到数据库中。通过更新上述脚本中的值,再重复此步骤几次。

node app.js

Database connection successful
Last record insert id: 5

此外,使用 mysql 命令行检查在 mydb 数据库下的用户表中添加的记录。

mysql> select * from users;

+----+-----------+----------+----------------+---------------------+
| id | firstname | lastname | email          | creation_date       |
+----+-----------+----------+----------------+---------------------+
|  5 | Rahul     | Kumar    | abc@domain.com | 2016-01-22 17:16:19 |
|  6 | John      | Smith    | xyz@domain.com | 2016-01-22 17:16:55 |
+----+-----------+----------+----------------+---------------------+
2 row in set (0.01 sec)

4. 从 MySQL 表中选择数据

现在编辑应用程序.js脚本并添加以下代码。这将从 mydb 数据库中的用户表中获取所有记录。

dbconn.query('SELECT * FROM users', function (err, records) {
    if (err)
        throw err;

    console.log('Data received from Db:n');
    console.log(records);
});

或者,您可以根据特定条件通过选择值自定义搜索。

dbconn.query('SELECT * FROM users WHERE id = ?', [1], function (err, records) {
    if (err)
        throw err;

    console.log('Data received from Db:n');
    console.log(records);
});

5. 从 MySQL 表更新数据

现在,如果您需要更新MySQL表中的现有数据,请使用以下代码。

dbconn.query('UPDATE users SET email = ? WHERE id = ?', ['new@domain.com', 6], function (err, result) {
    if (err)
        throw err;

    console.log('Record Updated ' + result.changedRows + ' rows');
});

现在检查数据库表中的值。

mysql> select * from users;

+----+-----------+----------+----------------+---------------------+
| id | firstname | lastname | email          | creation_date       |
+----+-----------+----------+----------------+---------------------+
|  5 | Rahul     | Kumar    | abc@domain.com | 2016-01-22 17:16:19 |
|  6 | John      | Smith    | new@domain.com | 2016-01-22 17:16:55 |
+----+-----------+----------+----------------+---------------------+
2 row in set (0.01 sec)

6. 从 MySQL 表中删除数据

现在,如果从表中删除某些记录,请在节点中添加以下代码.js应用程序代码。

dbconn.query('DELETE FROM users WHERE id = ?', [6], function (err, result) {
    if (err)
        throw err;

    console.log('Record Updated ' + result.affectedRows + ' rows');
});

现在检查数据库表中的值。

mysql> select * from users;

+----+-----------+----------+----------------+---------------------+
| id | firstname | lastname | email          | creation_date       |
+----+-----------+----------+----------------+---------------------+
|  5 | Rahul     | Kumar    | abc@domain.com | 2016-01-22 17:16:19 |
+----+-----------+----------+----------------+---------------------+
2 row in set (0.01 sec)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值