Nodejs操作MySql数据库

  • 最近在学习Nodejs,今天有空整理了下连接与操作mysql数据库的步骤
  • 如果觉得对你有所帮助就点个赞吧 o(∩_∩)o 哈哈

Nodejs操作数据库

1. 准备工作

  1. 一定要一定要先安装mysql数据库,不然你想,不装怎么连接怎么操作怎么存储?
  2. 关于如何安装请移步mysql安装详解
  3. 设置好你的密码,一般用户名是root,密码您随意~
  4. 建表。连接数据库,建表,加字段

2. Nodejs部分

  1. 需要先安装mysql模块 npm i mysql
  2. 之后可以通过mysql.createConnection方法新建一个数据库连接,需要传入的参数有地址、端口、登录名、密码,以及需要连接的数据库。mysql.createConnection会返回一个connection对象,可使用connection.query方法,传入SQL语句,对数据库进行相应操作。
const mysql = require('mysql');
// 1. 连接服务器
const connection = mysql.createConnection({
    host: 'localhost',  // 地址
    port: 3306,  // 端口,不传则默认3306
    user: 'root',  // 登录名
    password: '*****',  // 密码
    database: 'web'  // 连接的数据库
})

const username = 'lily'
const password = '888888'
connection.connect((err)=>{
    if(err){
        console.log(`链接失败${err}`);
    }else{
        console.log('链接成功');
    }
})
// 向数据库中插入数据
connection.query(`INSERT INTO new_table ( id, username, password ) VALUES ( 0 , '${username}', '${password}')`, (err, data) => {
  if (err) {
    console.error(err)
  } else {
    console.log(data)
  }
})

// 查询user_table表的数据
connection.query(`SELECT * FROM new_table`, (err, data) => {
  if (err) {
    console.error(err)
  } else {
    console.log(data)
  }
})

// TODO 输出结果为
PS C:\NodeJs\start\demo19database> node .\index.js
链接成功
//插入数据成功
OkPacket {
  fieldCount: 0,
  affectedRows: 1,
  insertId: 0,
  serverStatus: 2,
  warningCount: 0,
  message: '',
  protocol41: true,
  changedRows: 0 }
// 查询结果
[ RowDataPacket { ID: 0, username: 'lily', password: '888888' } ]

但mysql.createConnection方法有一个缺陷,就是它一次只能创建一个连接,一旦有多个用户同时请求,就会造成请求排队等待。
因此为了提高性能,可以改用mysql.createPool方法,创建一个连接池,它可以创建n个与服务器之间的连接,需要使用时,可以自动从中选取一个空闲的连接使用。

const connection = mysql.createPool({
  connectionLimit: 10,  // 建立的连接数量,默认为10个
  host: 'localhost',  // 地址
  port: 3306,  // 端口,不传则默认3306
  user: 'root',  // 登录名
  password: '*****',  // 密码
  database: 'web'  // 连接的数据库
})
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值