node.js实现MySQL连接

本文介绍了如何在Node.js环境中实现MySQL数据库的连接及增删查改操作。首先通过npm初始化项目并安装mysql库,然后详细讲解了连接数据库的步骤。接着,文章列举了插入、删除、查询和更新数据的具体SQL语句,并提到了如何根据受影响的行数判断操作是否成功。最后,文章提及了如何结合Express和body-parser模块进行登录验证,通过查询数据库来验证用户输入信息的准确性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、使用方法

1.进入到文件,打开powershell窗口,进行初始化:npm init -y
2.执行npm install mysql --save命令下载数据库
3.导入模块

二、连接数据库

var mysql = require('mysql');
//创建数据库的链接
var connection = mysql.createConnection({
  host:"localhost",  //访问地址
  user:"root",         //用户名
  password:"1234567",   //密码
  database:"mybook"    //数据库名称
});

// 执行连接操作
connection.connect();
 
// 操作数据库
connection.query('select count(*) as total from books', function (error, results, fields) {
    console.log('============');
    if (error) throw error;
  console.log('表books中共计有: ', results[0].total+'条数据');
});
 
// 关闭 数据库
connection.end();

三、增删查改的实现

1.增加数据
语句格式:insert into 表名称 set 数据。添加数据时必须与数据库的名称对应

 let sql = 'insert into books set ?'
 let data = {
     id:11,
     bookName: '明朝那些事',
     bookAuthor: '当年明月',
     bookCategory: '文学',
     bookDesc:'明朝的历史'
  }

2.删除数据
删除时必须要有where,如果没有添加,会删除全部数据

let sql = 'delete from books where id=?';
let data = [9];

3.查询数据
两种方法1.查询全部数据 2.按条件查询,也可以查询单独到单独的列

let sql = 'select * from books';
 let data = null;

let sql = 'select * from books where id=?';
let data = [10];

4.修改数据
两者必须一一对应

let sql = 'update books set bookName=?,bookAuthor=?,bookCategory=?,bookDesc=? where id=?';
let data = ['浪潮之巅','吴军','计算机','IT巨头的兴衰',9];

四、封装操作数据库通用的api

是否添加成功可以判断 affectedRows是否等于1,如果不等于就是添加失败。 changedRows可查看有无修改

const mysql = require('mysql');

// 接口
exports.base = (sql, data, callback) => { 
    // 创建数据库的链接
    const connection = mysql.createConnection({
        host: 'localhost',  
        user: 'root',
        password: '123456',
        database: 'book'
    });
    // 执行连接操作
    connection.connect();

    // 操作数据(数据库操作 也是异步的)
    connection.query(sql, data, function (error,results,fileds) { 
        if (error) throw error;
        callback(results);
    })
}
在dbtest.js下
////测试通用的api
const db = require('./db.js');
let sql = 'insert into tushuguanli set ?';
let data = {
    id: 5,
    sm: '笑傲江湖',
    zz: '金庸',
    nd: '文学',
    ms:'武侠小说'
}
db.base(sql,data,(results)=>{
    console.log(results)
})

五、登录验证实现

1.需要引入的模块有:express、body-parse、mysql

const express = require('express');
const bodyParser = require('body-parser');
const db = require('./db');  //引入封装数据库通用的api
const app = express();

2.主要使用查询语句,进行判断用户输入的是否与数据库相匹配(在数据库中只有一条与之匹配)

// 挂载中间件  use()
app.use(bodyParser.urlencoded({ extended: false }));
app.use(express.static('views'));

app.post('/check', (req, res) => {
    let param = req.body;
    let sql = 'select count(*) as total from admin where name=? and pwd=?'
    let data = [param.name, param.pwd]; //name与提交的name相同

    db.base(sql, data, (result) => { 
        console.log(result);
        if (result[0].total == 1) {
            res.send('login success');
        } else { 
            res.send('login fail');
        }
    })
})

app.listen(3000, () => { 
    console.log('running......');
})
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值