Nodejs 与 MySQL数据库交互

本文将介绍如何使用mysqljs/mysql模块实现Node.js应用程序与MySQL数据库的交互。

准备

  1. 准备Nodejs环境,Nodejs官网
  2. 准备MySQL数据库,MySQL官网

安装

mysqljs/mysql模块介绍

This is a Node.js module available through the npm registry.
This is a node.js driver for mysql. It is written in JavaScript, does not require compiling, and is 100% MIT licensed.

在Node.js应用程序根目录,使用npm命令安装mysql模块

npm install mysql

使用

1. 连接数据库

step1:导入mysql模块

const mysql = require("mysql");

step2:调用createConnection()创建连接对象

// createConnection(config),config:Object|String 提供两种创建连接对象的方式
// config 详情参考 https://github.com/mysqljs/mysql#connection-options
// Object 传参方式
const conn = mysql.createConnection({
   
    host:"localhost",
    port:3306,
    user:"root",
    password:"1234qwer",
    database:"ex_test"
});

// String 传参方式,可读性差,不推荐
// URL格式的连接配置,如 mysql://user:pass@host/db?debug=true
const conn2 = mysql.createConnection("mysql://root:1234qwer@localhost:3306/ex_test?debug=true");

// 数据库连接配置,也可以使用如下方式进行配置
conn.config.database = "ex_test";

step3:调用conn.connect()建立连接

// connect()方法接受一个具有err参数的回调函数,如果发生任何错误,它将提供详细的错误
conn.connect(function (err){
   
    if(err){
   
        console.log(err.message);
    }else{
   
        console.log("---------------[conn.connect] succeed.---------------")
    }
})

step4:调用conn.query()操作数据库

// 对数据库的CRUD,都是用query()方法,后边再详细说明
conn.query("select 1",function (err,results){
   
    console.log(results);
})

step5:调用conn.end()关闭连接

// end()接受一个回调函数,并且会在query结束之后才触发,如果query出错,仍然会终止连接,错误会传递到回调函数中处理
conn.end(function (err){
   
    if(err){
   
        console.log(err.message);
    }else{
   
        console.log("---------------[conn.end] succeed.---------------")
    }
});
// 要立即强制连接,可以使用destroy()方法
// destroy()立即终止数据库连接,即使还有query没有完成,它不会像end()方法那样采取任何回调参数
conn.destroy();

2. 操作数据库

对数据库的操作(CRUD、建库、建表等),都是使用query()方法,该方法接收三个参数:
第1个参数:sql语句,或者option Object;
第2个参数:为sql语句中的占位符提供的值,是单个值,或多个值组成的数组,或对象;
第3个参数:回调函数,回调函数有3个参数(error,result,fields),error是发生错误时的错误信息,results是sql执行结果,fields是涉及的字段(如果有);

详情参考:https://github.com/mysqljs/mysql#performing-queries

2.1 创建库

// 创建数据库 nodejs_mysql_db(不存在时才创建)
let db_sql = "CREATE DATABASE IF NOT EXISTS `nodejs_mysql_db` DEFAULT CHARSET utf8;"
conn.query(db_sql,function (err,results){
   
    if(err){
   return console.log(err);}
    console.log(results.affectedRows);	// 如果不报错,无论是否已创建 results.affectedRows=1
})

2.2 创建表

// 创建数据表 student (不存在时才创建)
let tb_sql = `CREATE TABLE IF NOT EXISTS students (
    Sid INT(8) NOT NULL AUTO_INCREMENT,
    Sname VARCHAR(10) NOT NULL,
    Sage INT(11) DEFAULT NULL,
    Ssex VARCHAR(10) DEFAULT NULL,
    PRIMARY KEY (Sid)
) ENGINE=INNODB DEFAULT CHARSET=utf8;`
// 上边在创建数据库连接对象时,连接的database是ex_test,这里给切换到新建的nodejs_mysql_db数据库
conn.config.database = "nodejs_mysql_db";
conn.query(tb_sql,function (err,results){
   
    if(err){
   return console.log(err);}
    console.log(results);
})

2.3 新增数据

// 方式1:每个?占位符 代表1个列属性,使用数组方式传值,数组长度与占位符个数一致,数组的每个元素将依次传给?占位符
// Arrays are turned into list, e.g. ['a', 'b'] turns into 'a', 'b'
let sql_insert1 = "INSERT INTO students (Sname,Sage,Ssex) VALUES (?,?,?)";
let student1 = ["张敏","20","女"];
// console.log(mysql.format(sql_insert1,student1));		// 可以使用 mysql.format() 将sql语句转化为标准sql
let qr1 = conn.query(sql_insert1,student1,function (
  • 5
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
在Node.js中连接MySQL数据库,你可以使用一个称为mysql第三方库。首先,确保你的项目已经初始化,并且已经安装了Node.js。然后,按照以下步骤进行操作: 1. 在命令行中,导航到你的项目目录,并运行以下命令来安装mysql库: ``` npm install mysql ``` 2. 在你的代码文件中,使用`require`语句引入mysql库: ```javascript const mysql = require('mysql'); ``` 3. 创建一个连接对象,并用正确的参数配置连接信息。例如,如果你在本地运行MySQL服务器,可以使用以下代码: ```javascript const connection = mysql.createConnection({ host: 'localhost', user: 'your_username', password: 'your_password', database: 'your_database' }); ``` 确保将`your_username`、`your_password`和`your_database`替换为你的实际数据库凭据和数据库名称。 4. 使用`connect`方法连接到数据库: ```javascript connection.connect((err) => { if (err) throw err; console.log('Connected to MySQL database!'); }); ``` 5. 现在,你已经成功连接到MySQL数据库。你可以执行各种操作,例如执行查询或插入数据。下面是一个示例,展示如何执行查询并获取结果: ```javascript connection.query('SELECT * FROM your_table', (err, results) => { if (err) throw err; console.log('Query results:', results); }); ``` 确保将`your_table`替换为你实际的表名。查询结果将在回调函数中作为`results`参数返回。 6. 当你完成与数据库交互后,使用`end`方法关闭连接: ```javascript connection.end((err) => { if (err) throw err; console.log('Disconnected from MySQL database!'); }); ``` 这是一个基本的示例,介绍了如何在Node.js中连接到MySQL数据库。你可以根据自己的需求进行进一步的操作和查询。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小青龍

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值