Node.js如何在项目中操作MySQL

 更新时间:2022年01月13日 10:17:10   作者:bear*6  
这篇文章主要介绍了Node.js如何在项目中操作MySQL,从而实现数据的查询、插入、更新和删除等操作,感兴趣的小伙伴可以跟随小编一起学习一下

1、在项目中操作 MySQL的步骤

(1)安装操作 MySQL 数据库的第三方模块(mysql)

(2)通过 mysql 模块连接到 MySQL 数据库

(3)通过 mysql 模块执行 SQL 语句

在这里插入图片描述

2、安装与配置 mysql 模块

1、安装 mysql 模块

Mysql 模块是托管于 npm 上的第三方模块。它提供了在 Node.js 项目中连接和操作 MySQL 数据库的能力。

想要在项目中使用它,需要先运行如下命令,将 mysql 安装为项目的依赖包:

npm install mysql

如下:

在这里插入图片描述

2、配置 mysql 模块

如下图,我的MySQL 数据库中有如下数据:

在这里插入图片描述

在使用 mysql 模块操作 MySQL 数据库之前,必须先对 mysql 模块进行必要的配置,主要的配置步骤如下:

//导入模块
const mysql = require('mysql')
//建立与mysql数据库的联系
const db = mysql.createPool({
    host:'127.0.0.1',   //数据库的IP地址
    user:'root',        //登录数据库的账号
    password:'******',//登录数据库的密码
    database:'bear2'     //指定要操作哪个数据库
})

3、测试 mysql 模块能否正常工作

调用 db.query() 函数,指定要执行的 SQL 语句,通过回调函数拿到执行的结果:

//测试mysql能否正常工作
db.query('SELECT 1',(err,results)=>{
    if(err) return console.log(err.message)
    //能够成功的执行SQL语句
    console.log(results)
})

测试结果为:

在这里插入图片描述

3、使用 mysql 模块操作 MySQL 数据库

1、查询数据

查询 student 表中所有的数据:

db.query('SELECT * FROM STUDENT',(err,results)=>{
    //查询失败
    if(err) return console.log(err.message)
    //查询成功
    console.log(results)
})

结果为:

在这里插入图片描述

查询成功,且得到的结果是一个数组。

2、插入数据

student表中新增数据, 其中 cname'小延'age16。示例代码如下:

//要插入到student表中的数据对象
const student = {cname:'小延',age:16}
//待执行的SQL语句,其中英文的?表示占位符
const sqlStr = 'INSERT INTO student(cname,age)VALUES(?,?)'
//使用数组的形式,依次为占位符指定具体的值
db.query(sqlStr,[student.cname,student.age],(err,results)=>{
    if(err) return console.log(err.message) //失败
    if(results.affectedRows === 1){
        console.log('插入成功') //成功
    }
})

结果为:

在这里插入图片描述

打开数据库,查看数据,即:

在这里插入图片描述

数据插入成功。

3、插入数据的便捷方式

向表中新增数据时,如果数据对象的每个属性和数据表的字段一一对应,则可以通过如下方式快速插入数据:

//要插入到student表中的数据对象
const student = {cid:9,cname:'小杨',age:18,class_id:1002}
//待执行的SQL语句,其中英文的?表示占位符
const sqlStr = 'INSERT INTO student SET ?'
//直接将数据对象当做占位符的值
db.query(sqlStr,student,(err,results)=>{
    if(err) return console.log(err.message) //失败
    if(results.affectedRows === 1) console.log('插入数据成功!')
})

结果为:

在这里插入图片描述

打开数据库,查看数据,即:

在这里插入图片描述

数据插入成功。

4、更新数据

可以通过如下方式,更新表中的数据:

//要更新的数据对象
const student = {cid: 8, cname: '小欣', age: 18, class_id: 1002}
//要执行的SQL语句
const sqlStr = 'UPDATE student SET cname=?,age=?,class_id=? WHERE cid=?'
//调用db.query()执行SQL语句的同时,使用数组依次为占位符指定具体的值
db.query(sqlStr,[student.cname,student.age,student.class_id],(err,results)=>{
    if(err) return console.log(err.message) //失败
    if(results.affectedRows === 1) {
        console.log('更新数据成功!')
    }
})

结果为:

在这里插入图片描述

打开数据库,查看数据,即:

在这里插入图片描述

数据更新成功。

5、更新数据的便捷方式

更新表数据时,如果数据对象的每个属性和数据表的字段一一对应,则可以通过如下方式快速更新表数据:

const student = {cid:1,cname:'小钰',age:17,class_id:1003}
//要执行的SQL语句
const sqlStr = 'UPDATE student SET ? WHERE cid=?'
调用db.query()执行SQL语句的同时,使用数组依次为占位符指定具体的值
db.query(sqlStr,[student,student.cid],(err,results)=>{
    if(err) return console.log(err.message) //失败
    if(results.affectedRows === 1){
        console.log('数据更新成功!')  //成功
    }
})

结果为:

在这里插入图片描述

打开数据库,查看数据,即:

在这里插入图片描述

数据更新成功。

6、删除数据

在删除数据时,最好根据 cid 这样的唯一标识,来删除对应的数据。示例如下:

//要执行的SQL语句
const sqlStr = 'DELETE FROM student WHERE cid=?'
//调用db.query()执行sql语句的同时,为占位符指定确定的值
db.query(sqlStr,3,(err,results)=>{
    if(err) return console.log(err.message)
    if(results.affectedRows === 1){  // 失败
        console.log('删除数据成功!') //成功
    }
})

结果为:

在这里插入图片描述

打开数据库,查看数据,即:

在这里插入图片描述

删除数据成功。

需要注意的是:如果SQL语句有多个占位符,则必须为每个占位符指定具体的值,如果SQL语句只有一个占位符,则可以省略数组。

7、标记删除

使用 DELETE 语句,会把真正的把数据从表中删除掉。为了保险起见,推荐使用标记删除的形式,来模拟删除的动作。

所谓的标记删除,就是在表中设置类似于 class_id 这样的状态字段,来标记当前这条数据是否被删除。

当用户执行了删除的动作时,我们并没有执行 DELETE 语句把数据删除掉,而是执行了 UPDATE 语句,将这条数据对应的class_id字段标记为删除即可。

//标记删除:使用UPDATE语句代替DELETE语句;只更新数据的状态,并没有真正删除。
db.query('UPDATE student SET class_id=? WHERE cid=?',[1000,6],(err,results)=>{
    if(err) return console.log(err.message)
    if(results.affectedRows === 1){  // 失败
        console.log('标记删除成功!') //成功
    }
})

结果为:

在这里插入图片描述

打开数据库,查看数据,即:

在这里插入图片描述

标记删除成功。

以上就是Node.js如何在项目中操作MySQL的详细内容,更多关于Node.js操作MySQL的资料请关注脚本之家其它相关文章!

相关文章

  • 详解Nodejs之npm&package.json

    详解Nodejs之npm&package.json

    本篇文章主要介绍了详解Nodejs之npm&package.json,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-06-06
  • Node.js Buffer模块功能及常用方法实例分析

    Node.js Buffer模块功能及常用方法实例分析

    这篇文章主要介绍了Node.js Buffer模块功能及常用方法,结合实例形式分析了Buffer模块的各种常用函数及相关使用技巧,需要的朋友可以参考下
    2019-01-01
  • node使用async_hooks模块进行请求追踪

    node使用async_hooks模块进行请求追踪

    这篇文章主要介绍了node使用async_hooks模块进行请求追踪,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-01-01
  • nodemon实现Typescript项目热更新的示例代码

    nodemon实现Typescript项目热更新的示例代码

    这篇文章主要介绍了nodemon实现Typescript项目热更新的示例代码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-11-11
  • nodejs+websocket实时聊天系统改进版

    nodejs+websocket实时聊天系统改进版

    这篇文章主要介绍了nodejs+websocket实时聊天系统的改进版,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-05-05
  • node.js中的path.resolve方法使用说明

    node.js中的path.resolve方法使用说明

    这篇文章主要介绍了node.js中的path.resolve方法使用说明,本文介绍了path.resolve的方法说明、接收参数、语法、使用实例和实现源码,需要的朋友可以参考下
    2014-12-12
  • Nodejs Docker镜像体积优化实践详解

    Nodejs Docker镜像体积优化实践详解

    这篇文章主要为大家介绍了Nodejs Docker镜像体积优化实践示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-07-07
  • 深入理解Node.js中的Worker线程

    深入理解Node.js中的Worker线程

    这篇文章主要介绍了深入理解Node.js中的Worker线程,对Worker线程感兴趣的同学,一定要看一下
    2021-04-04
  • 推荐一个基于Node.js的表单验证库

    推荐一个基于Node.js的表单验证库

    这篇文章主要介绍了推荐一个基于Node.js的表单验证库,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2019-02-02
  • node.js Promise对象的使用方法实例分析

    node.js Promise对象的使用方法实例分析

    这篇文章主要介绍了node.js Promise对象的使用方法,结合实例形式分析了node.js中Promise对象的功能、定义、调用方法及相关使用技巧,需要的朋友可以参考下
    2019-12-12

最新评论