使用node连接MySQL

本文详细介绍了如何使用Node.js和MySQL模块完成数据库的连接、查询等操作,包括安装MySQL、导入模块、创建数据库连接池、连接数据库及查询数据的具体步骤。

步骤1:安装MySQL

npm install mysql

步骤2:导入MySQL

let mysql = require('mysql');

步骤3:创建数据库连接池

// 创建一个数据库连接池
let connection = mysql.createConnection({
    host:'localhost',
    user:'root',
    password:'',
    database:'onlineflower'
});

步骤4:连接MySQL

//连接
connection.connect(function(err){
    if(err){
        console.log('error')
    }
    console.log('connect success!')
});

步骤5:查询数据

// 查询数据
connection.query('select * from admin',function(err,row){
    if(err){
        console.log('query error!')
    }else{
        console.log(row)
    }
    connection.end()//关闭连接
})

前提

启动MySQL
在这里插入图片描述

存在数据库
在这里插入图片描述

运行

命令行打开server目录

node index.js

返回结果

[
  RowDataPacket {    
    adminid: 'admin',
    name: 'admin',   
    telephone: '99999',
    password: '123456'
  }
]
使用Node连接MySQL有多种方法,以下为详细介绍: ### 基本依赖安装 以Node中常用的Express为例,需先安装相关依赖: ```bash npm i express --save npm i mysql --save ``` 这里安装了Express框架和用于连接MySQL的`mysql`模块[^1]。 ### 直接创建连接 1. **引入依赖**: ```javascript const mysql = require("mysql"); ``` 2. **创建连接,配置参数**: - **对象模式**(通常推荐,更清晰): ```javascript const conn = mysql.createConnection({ host: "localhost", // 如果需要连接互联数据库或局域网数据库,采用数据库的ip地址 port: "3306", // 设置端口号,如果是默认值“3306”,可以省略 user: "root", // 配置登录数据库的用户名 password: "123456", // 配置数据库登录上面用户名的密码 database: "test" // 数据库 }); ``` - **字符串模式**,本质是一个URL地址: ```javascript const conn = mysql.createConnection("mysql://root:123456@localhost/xiao_u?debug=true&charset=BIG_CHINESE_CI&timezone=-0700"); ``` 3. **建立连接**: - 简单方式: ```javascript conn.connect(); ``` - 推荐方式: ```javascript conn.connect((err) => { if (err) console.log(err); }); ``` 4. **执行数据库的操作语句**: ```javascript conn.query("select 1+1 as sum ", (err, res, fields) => { console.log(res); }); ``` 5. **关闭连接/销毁连接**: - **关闭连接**: ```javascript // 方式一 conn.end(); // 方式二 conn.end((err) => { if (err) console.log(err); }); ``` - **销毁连接**: ```javascript conn.destroy(); ``` 关闭连接可以传递回调函数,销毁连接没有回调函数[^4]。 ### 旧版本创建连接方式 ```javascript var db_options = { host: 'localhost', port: 3306, user: 'root', password: '', database: 'test' }; // 加载mysql Module var mysql = require('mysql'), client = null; if (mysql.createClient) { client = mysql.createClient(db_options); } else { client = new mysql.Client(db_options); client.connect(function (err) { if (err) { console.error('connect db ' + client.host + ' error: ' + err); process.exit(); } }); }; client.query( 'create table TestTable1 values(name varchar(50),' + 'PhoneNum varchar(100))' ); ``` 此方式适用于旧版本的`mysql`模块[^3]。 ### 创建连接池 ```javascript const mysql = require('mysql'); const pool = mysql.createPool({ host: "数据库服务器的地址", port: "端口号", user: "连接数据库的用户名", password: "连接数据库的密码", database: "数据库名", connectionLimit: 10, // 用于指定连接池中最大的链接数,默认属性值为10 multipleStatements: false // 是否允许执行多条sql语句,默认值为false }); ``` 使用连接池可以提高性能,避免频繁创建和销毁连接[^5]。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值