Node.js 与 MySQL 示例

2023-11-16

Node.js 是一种流行的 Web 应用程序编程语言,如 PHP 和 JAVA。此外,MySQL 是用于存储值的最流行的数据库。 Node.js 的 MySQL 数据库驱动程序可在 NPM 存储库下找到。在本教程中,您将学习如何使用 Node.js 连接 MySQL 数据库并对 MySQL 数据库表执行 INSERT、UPDATE、SELECT 和 DELETE 操作。

第 1 步 – 创建 MySQL 数据库和表

首先,在 MySQL 中为您的应用程序创建数据库和用户。出于测试目的,我们正在创建 mydb 数据库并使用它。


mysql> CREATE DATABASE mydb;
mysql> USE mydb;
  

现在创建一个用于执行插入、更新和删除操作的示例表。

1
2
3
4
5
6
7
8
CREATE TABLE users (
  id int(11) NOT NULL 自动递增,
   varchar(30),
  lastname varchar(30),
  email VARCHAR(50),
  创建日期 时间戳,
  PRIMARY KEY (id)
) ENGINE=InnoDB  DEFAULT CHARSET=utf8 自动递增=1 ;

还创建一个 mysql 用户用于从应用程序访问数据库。


mysql> GRANT ALL on mydb.* to 'myusr'@'localhost' identified by '123456';
mysql> FLUSH PRIVILEGES;
  

2.安装Node.js MySQL模块

Node.js 的 MySQL 驱动程序可在节点包管理器 (NPM) 下找到。使用以下命令来安装它。


sudo npm install mysql
  

3. 连接MySQL的简单应用程序

下面是一个示例node.js 程序,它将连接node.js 应用程序和MySQL 服务器。它将根据连接结果显示成功和错误消息,并在程序结束时关闭连接。创建 JavaScript 文件app.js.


cd myApp
vim app.js
  

并将以下内容添加到上述文件中。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
var mysql  = require('mysql');
var dbconn = mysql.创建连接({
  host     : '本地主机',
  user     : 'myusr',
  password : '123456',
  database : 'mydb'
});
 
dbconn.connect(function(err){
  if(err){
    console.log(“数据库连接错误”);
  }else{
    console.log('数据库连接成功');
  }
});
 
dbconn.end(function(err) {
  // 关闭数据库连接的函数
});

现在使用nodejs执行上述脚本并确保数据库是否正确连接。


node app.js

Database connection successful
  

3.在MySQL表中插入数据

现在添加上面脚本中的代码以将数据插入users表中mydb数据库。


var mysql  = require('mysql');
var dbconn = mysql.createConnection({
  host     : 'localhost',
  user     : '<DB_USER>',
  password : '<DB_PASSWORD>',
  database : '<DB_NAME>'
});

dbconn.connect(function(err){
  if(err){
    console.log('Database connection error');
  }else{
    console.log('Database connection successful');
  }
});


var record= { firstname: 'Rahul', lastname: 'Kumar', email: 'abc@domain.com' };

dbconn.query('INSERT INTO users SET ?', record, function(err,res){
  if(err) throw err;

  console.log('Last record insert id:', res.insertId);
});

dbconn.end(function(err) {
  // Function to close database connection
}
  

现在使用命令行执行 app.js 脚本,并确保数据已正确插入数据库中。重复此步骤几次,更新上述脚本中的值。


node app.js

Database connection successful
Last record insert id: 5
  

另外,使用mysql命令行检查mydb数据库下的users表中添加的记录。


mysql> select * from users;

+----+-----------+----------+----------------+---------------------+
| id | firstname | lastname | email          | creation_date       |
+----+-----------+----------+----------------+---------------------+
|  5 | Rahul     | Kumar    | abc@domain.com | 2016-01-22 17:16:19 |
|  6 | John      | Smith    | xyz@domain.com | 2016-01-22 17:16:55 |
+----+-----------+----------+----------------+---------------------+
2 row in set (0.01 sec)
  

4.从MySQL表中选择数据

现在编辑 app.js 脚本并添加以下代码。这将从 mydb 数据库中的用户表中获取所有记录。



dbconn.query('SELECT * FROM users',function(err, records){
  if(err) throw err;

  console.log('Data received from Db:n');
  console.log(records);
});
  

或者您可以根据特定条件通过选择值自定义搜索。



dbconn.query('SELECT * FROM users WHERE id = ?' [5] ,function(err, records){
  if(err) throw err;

  console.log('Data received from Db:n');
  console.log(records);
});
  

5.从MySQL表更新数据

现在,如果您需要更新 MySQL 表中的现有数据,请使用以下代码。



dbconn.query('SELECT users SET email = ? WHERE id = ?', ['new@domain.com', 6], function(err, result){
  if(err) throw err;

  console.log('Record Updated ' + result.changedRows + ' rows');
});
  

现在检查数据库表中的值。


mysql> select * from users;

+----+-----------+----------+----------------+---------------------+
| id | firstname | lastname | email          | creation_date       |
+----+-----------+----------+----------------+---------------------+
|  5 | Rahul     | Kumar    | abc@domain.com | 2016-01-22 17:16:19 |
|  6 | John      | Smith    | new@domain.com | 2016-01-22 17:16:55 |
+----+-----------+----------+----------------+---------------------+
2 row in set (0.01 sec)
  

6.删除MySQL表中的数据

现在,如果您从表中删除一些记录,请在您的 Node.js 应用程序代码中添加以下代码。



dbconn.query('DELETE FROM users WHERE id = ?', [6], function(err, result){
  if(err) throw err;

  console.log('Record Updated ' + result.affectedRows + ' rows');
});
  

现在检查数据库表中的值。


mysql> select * from users;

+----+-----------+----------+----------------+---------------------+
| id | firstname | lastname | email          | creation_date       |
+----+-----------+----------+----------------+---------------------+
|  5 | Rahul     | Kumar    | abc@domain.com | 2016-01-22 17:16:19 |
+----+-----------+----------+----------------+---------------------+
2 row in set (0.01 sec)
  
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Node.js 与 MySQL 示例 的相关文章

随机推荐

  • GDB调试子进程

    http blog sina com cn s blog 4e415c0b0100lum0 html 1 set follow fork mode
  • Ajax请求url的中文乱码问题

    Ajax请求路径中如果有中文出现在参数值中时 在IE浏览器中出现过乱码的情况 遇到这种问题那肯定就是编码的问题 这时我们就必须采用编码后再传参了 在后台接收时就必须进行解码操作 在js中进行编码操作有几个常用的方法escape encode
  • OpenHarmony在Amlogic A311D芯片平台的快速开发上手指南

    OpenHarmony是由开放原子开源基金会 OpenAtom Foundation 孵化及运营的开源项目 目标是面向全场景 全连接 全智能时代 搭建一个智能终端设备操作系统的框架和平台 促进万物互联产业的繁荣发展 目前最新发布的版本为Op
  • DOCKER UBUNTU 配置

    TensorRT 8 2 1 8 安装笔记 超全超详细 Docker 快速搭建 TensorRT 环境 知乎 1 DOCKER 深度学习环境基本要素 1 Docker部署深度学习服务器 CUDA cudnn ssh 铜锣烧阿南Anan的博客
  • Linux中的多线程剖析

    目录 1 前言 2 多线程理解 2 1 线程 2 2 通俗了解进程和线程 2 2 1 进程是资源分配的基本单位 2 2 2 Linux中的线程是一种轻量化进程 2 3 进程和线程详解 2 3 1 创建一个线程 pthread create
  • SpringMVC框架在Controller中对于Session的处理

    Controller中的代码 Controller SessionAttributes User Y 此处定义此Controller中将要创建和使用哪些session中的对象名 public class UserController Res
  • 若依RuoYi-Cloud代码学习四---扩展nacos的知识(bootstrap.yml,spring.factories文件)

    一 概念 Nacos 是一个更易于帮助构建云原生应用的动态服务发现 配置和服务管理平台 Nacos 的命名组成 以此知道它的作用 组成部分 全称 描述 Na naming nameServer 即服务注册中心 与 Spring Cloud
  • 一个常见的大数据术语表

    大数据 big data 是指无法在可承受的时间范围内用常规软件工具进行捕捉 管理和处理的数据集合 是需要新处理模式才能具有更强的决策力 洞察发现力和流程优化能力的海量 高增长率和多样化的信息资产 大数据的出现带来了许多新的术语 但这些术语
  • 自蒸馏One-shot NAS——Cream of the Crop

    Paper https arxiv org abs 2010 15821 GitHub NNI https github com microsoft nni blob master docs en US NAS Cream rst GitH
  • Goby反制复现

    0x00 前言 最近复现Goby反制的时候遇到很多坑 记录一下反制过程以及遇到的坑点 还有世界上最强的黑客mux1ng帮我解决了很多问题 0x01环境 攻击机 windows10 Goby1 8 230 172 20 10 3 反制机 Wi
  • VM600 MPC4 IOCT16T CMC16 保护其设备免受篡改或网络攻击

    VM600 MPC4 IOCT16T CMC16 保护其设备免受篡改或网络攻击 推出Protection Suite 其中包括CodeMeter加密和许可工具 使制造商能够快速轻松地保护其现成的软件和专有技术免受盗版和逆向工程的侵害 并保护
  • 链接数据库 报错java.sql.SQLException: Unsupported character encoding ‘utf-8......

    项目启动报如下错误信息 java sql SQLException Unsupported character encoding utf 8 serverTimezone 分析 由 java sql SQLException 可知道很大概率
  • 大数据-linux免密登录

    操作 mini yum服务器 A root sizhan ssh keygen Generating public private rsa key pair Enter file in which to save the key root
  • JavaScript实现点击复制(JS访问剪贴板相关)

    一 具体代码 网页前端开发中有时会出现这样的场景 让用户点击某个按钮 然后就能直接复制对应的文本内容 让用户可以将文本内容粘贴到想要粘贴的地方 常用于分享功能模块中 如果想要实现这种效果就需要我们去访问用户的剪贴板 然后把想要复制的内容写入
  • logging模块详细使用

    啄木鸟社区里的Pythonic八荣八耻有一条 以打印日志为荣 以单步跟踪为耻 很多程序都有记录日志的需求 并且日志中包含的信息既有正常的程序访问日志 还可能有错误 警告等信息输出 python的logging模块提供了标准的日志接口 你可以
  • 公司取名字-免费查询参考(中英文2023年精选100个)公司名字集

    中文名称 1 星辰科技 2 卓越集团 3 璀璨科技 4 炫彩网络 5 融智科技 6 致远集团 7 飞跃科技 8 极致集团 9 灵动科技 10 豪迈集团 11 神州科技 12 创维集团 13 赛博科技 14 蓝海集团 15 云端科技 16 融
  • [ vulhub漏洞复现篇 ] struts2远程代码执行漏洞s2-048(CVE-2017-9791)

    博主介绍 博主介绍 大家好 我是 PowerShell 很高兴认识大家 主攻领域 渗透领域 数据通信 通讯安全 web安全 面试分析 点赞 评论 收藏 养成习惯 一键三连 欢迎关注 一起学习 一起讨论 一起进步 文末有彩蛋 作者水平有限 欢
  • IDEA(2023)解决运行乱码问题

    作者介绍 一个有梦想 有理想 有目标的 且渴望能够学有所成的追梦人 学习格言 不读书的人 思想就会停止 狄德罗 个人主页 进入博主主页 专栏系列 无 欢迎小伙伴们访问到博主的文章内容 在浏览阅读过程发现需要纠正的地方 烦请指出 愿能与诸君一
  • 如何增加 Tomcat 上传文件大小限制

    今天在部署一个war文件 开发站点代码 时Tomcat 8 我遇到了以下有关 Apache Tomcat 服务器中上传限制大小的问题 所以我决定将 Tomcat 上传文件大小限制增加到高于默认值 默认上传限制设置为 50 MB Caused
  • Node.js 与 MySQL 示例

    Node js 是一种流行的 Web 应用程序编程语言 如 PHP 和 JAVA 此外 MySQL 是用于存储值的最流行的数据库 Node js 的 MySQL 数据库驱动程序可在 NPM 存储库下找到 在本教程中 您将学习如何使用 Nod