Node 连接mysql数据库

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
简介: JXcore作者已经不维护了。github地址 https://github.com/jxcore/jxcore所以下面是Node.js连接MysqlNode.js 连接Mysql使用的内容作者依旧在维护 安装 PS C:\Users\mingm\Desktop\test> npm install.

JXcore作者已经不维护了。
github地址 https://github.com/jxcore/jxcore
所以下面是Node.js连接Mysql
Node.js 连接Mysql
使用的内容作者依旧在维护

安装

PS C:\Users\mingm\Desktop\test> npm install mysql --save
npm WARN saveError ENOENT: no such file or directory, open 'C:\Users\mingm\Desktop\test\package.json'
npm WARN enoent ENOENT: no such file or directory, open 'C:\Users\mingm\Desktop\test\package.json'
npm WARN test No description
npm WARN test No repository field.
npm WARN test No README data
npm WARN test No license field.

+ mysql@2.16.0
updated 1 package and audited 296 packages in 2.366s
found 0 vulnerabilities

PS C:\Users\mingm\Desktop\test>

npm地址 https://www.npmjs.com/package/mysql
github 地址 https://github.com/mysqljs/mysql
文档地址 https://www.npmjs.com/package/mysql#install 查看一些文档的时候需要在这里查看

连接数据库

由于本地已经有mysql了。

PS C:\Users\mingm\Desktop\test> node test.js
The solution is: 2
var mysql = require('mysql');
var connection = mysql.createConnection({
    host: 'student.iming.info',    // 连接的服务器
    user: 'root',    // 用户名
    password: '********',    // 用户密码
    database: 'ming'    // 选择的库
});

connection.connect();    // 创建一个mysql的线程

connection.query('SELECT 1 + 1 AS solution', (err, results, fields) => {
    if (err) {
        throw  err;
    };

    console.log('The solution is:', results[0].solution);    // 返回第一条记录的solution列的内容
});

好啦。这就完成了一次连接,使用的是npm下载的mysql模块,使用的是c++语言编写的

数据库操作

PS C:\Users\mingm\Desktop\test> node test.js
------------SELECT-------------
[ RowDataPacket {
    id: 1,
    name: 'Google',
    url: 'https://www.google.cm/',
    alexa: 1,
    country: 'USA' },
  RowDataPacket {
    id: 2,
    name: '淘宝',
    url: 'https://www.taobao.com/',
    alexa: 13,
    country: 'CN' },
  RowDataPacket {
    id: 3,
    name: '微博',
    url: 'http://weibo.com/',
    alexa: 20,
    country: 'CN' },
  RowDataPacket {
    id: 5,
    name: 'Facebook',
    url: 'https://www.facebook.com/',
    alexa: 3,
    country: 'USA' } ]
--------------------------------
var mysql = require('mysql');
var connection = mysql.createConnection({
    host: 'student.iming.info',    // 连接的服务器
    user: 'root',    // 用户名
    password: '******************',    // 用户密码
    database: 'ming'    // 选择的库
});

connection.connect();    // 创建一个mysql的线程

// 推荐查询语句使用大写。方便分辨和后期的维护
var sql = 'SELECT * FROM websites';    // sql命令
connection.query(sql, (err, results, fields) => {    // results 为查询的结果 fields 为返回的信息
    if (err) {
        console.log('[SELECT ERROR] -', err.message);
        return;
    };

    console.log('------------SELECT-------------');    
    console.log(results);    // 输出查询的结果
    console.log('--------------------------------');
});

下面该是数据库的原子操作了。即CULD

插入数据

PS C:\Users\mingm\Desktop\test> node test.js
------------------INSERT--------------------------
INSERT ID OkPacket {
  fieldCount: 0,
  affectedRows: 1,
  insertId: 6,
  serverStatus: 2,
  warningCount: 0,
  message: '',
  protocol41: true,
  changedRows: 0 }
-------------------------------------------------


PS C:\Users\mingm\Desktop\test>
var mysql = require('mysql');
var connection = mysql.createConnection({
    host: 'student.iming.info',    // 连接的服务器
    user: 'root',    // 用户名
    password: '*******************',    // 用户密码
    database: 'ming'    // 选择的库
});

connection.connect();    // 创建一个mysql的线程

var addSql = 'INSERT INTO websites(id, name, url, alexa, country) VALUES(0, ?, ?, ?, ?)'; // 创建一个通用的sql,并预留出填补的空位
var addSqlParams = ['mySoul', 'https://www.iming.info', '0000000', 'CN'];

connection.query(addSql, addSqlParams, (err, result) => {
    if(err){
        console.log('[INSERT ERROR] -', err.message);
        return;
    }

    console.log('------------------INSERT--------------------------')
    console.log('INSERT ID', result);
    console.log('-------------------------------------------------\n\n');
});

登陆数据库查看

mysql> select * from websites;
+----+----------+---------------------------+-------+---------+
| id | name     | url                       | alexa | country |
+----+----------+---------------------------+-------+---------+
|  1 | Google   | https://www.google.cm/    |     1 | USA     |
|  2 | 淘宝     | https://www.taobao.com/   |    13 | CN      |
|  3 | 微博     | http://weibo.com/         |    20 | CN      |
|  5 | Facebook | https://www.facebook.com/ |     3 | USA     |
|  6 | mySoul   | https://www.iming.info    |     0 | CN      |
+----+----------+---------------------------+-------+---------+
5 rows in set (0.02 sec)

mysql>

很明显已经插入完成

亲,如果数据库ID设置了自动递增,即使用了AUTO_INCREMENT,建议使用自增,因为数据库索引是B+树的加快查询速度。所以一般都设置自增序列

关于JSON 因为数据通信是使用JSON的,所以两个方法,一个JSON转对象 JSON.parse
 对象转JSON JSON.stringify

在加上一个node的框架Express,即可完成和浏览器的交互,这样就完成一个web服务器的搭建

删除数据

var mysql = require('mysql');
var connection = mysql.createConnection({
    host: 'student.iming.info',    // 连接的服务器
    user: 'root',    // 用户名
    password: '****************',    // 用户密码
    database: 'ming'    // 选择的库
});

connection.connect();    // 创建一个mysql的线程

var delSql = 'DELETE FROM websites WHERE id=6';
connection.query(delSql, (err, result) => {
    if(err) {
        console.log('[DELETE ERROR] -', err.message);
        return;
    }

    console.log('------------DELETE------------------');
    console.log('DELETE affectedRows', result);
    console.log('------------------------------------');
})

connection.end();
PS C:\Users\mingm\Desktop\test> node test.js
------------DELETE------------------
DELETE affectedRows OkPacket {
  fieldCount: 0,
  affectedRows: 1,
  insertId: 0,
  serverStatus: 2,
  warningCount: 0,
  message: '',
  protocol41: true,
  changedRows: 0 }
------------------------------------
PS C:\Users\mingm\Desktop\test>

博客

www.iming.info

相关实践学习
基于CentOS快速搭建LAMP环境
本教程介绍如何搭建LAMP环境,其中LAMP分别代表Linux、Apache、MySQL和PHP。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
相关文章
|
2天前
|
Java 关系型数据库 MySQL
JSP 教程 之 JSP 连接数据库 1
**JSP连接MySQL数据库教程**:确保有JDBC驱动,如MySQL 5或8的connector。将jar包放入Tomcat的lib目录。对于MySQL 8,驱动类改为`com.mysql.cj.jdbc.Driver`,URL示例:`jdbc:mysql://localhost:3306/baidu?useSSL=false&serverTimezone=UTC&useUnicode=true&characterEncoding=utf-8`。创建数据库`baidu`和表`websites`,包含站点信息,然后插入测试数据。
12 4
|
1天前
|
SQL Java 关系型数据库
JSP 教程 之 JSP 连接数据库 4
JSP教程展示使用JSTL SQL标签执行DELETE操作。示例连接到MySQL数据库,删除ID为11的记录,然后显示更新后的websites表内容。包括设置数据库源、执行`DELETE FROM websites WHERE Id=?`语句,并用JSTL遍历结果展示表格。
7 2
|
1天前
|
SQL Java 关系型数据库
JSP 教程 之 JSP 连接数据库 3
**JSP教程示例:连接MySQL执行INSERT和SELECT操作** 本示例展示如何使用JSTL的`<sql>`标签在JSP中执行SQL。首先设置数据源,然后执行INSERT语句向`websites`表添加一条记录,接着执行SELECT查询并显示所有结果。页面包含一个表格来展示查询到的网站信息,如ID、站点名和URL。注意替换实际的数据库URL、用户名和密码。
8 2
|
1天前
|
SQL Java 关系型数据库
JSP 教程 之 JSP 连接数据库 2
该JSP教程展示了如何使用JSTL SQL标签连接到MySQL数据库执行SELECT操作。示例显示了设置数据源、查询`websites`表并遍历结果以在HTML表格中显示ID、站点名和站点地址的过程。数据库URL、用户名和密码需按实际配置。
7 2
|
4天前
|
SQL Oracle 关系型数据库
Python连接数据库进行数据查询的操作代码
mysql数据库(mariadb) 连接数据库 首先,你需要使用MySQLdb.connect()函数建立与MySQL数据库的连接。你需要提供数据库服务器的地址(host),用户名(user),密码(passwd),以及你想要操作的数据库名称(db)。 创建Cursor对象 一旦建立了数据库连接,你可以使用连接对象的cursor()方法来创建一个cursor对象。这个方法返回一个cursor实例,你可以使用这个实例来执行SQL查询和命令。
|
22小时前
|
关系型数据库 MySQL Java
连接 MySQL 数据库使用 JDBC
连接 MySQL 数据库使用 JDBC
4 0
|
4天前
|
JavaScript
Node.js实操练习(一)之Node.js+MySQL+RESTful(4)
Node.js实操练习(一)之Node.js+MySQL+RESTful
|
2天前
|
存储 关系型数据库 MySQL
|
2天前
|
SQL 关系型数据库 MySQL
|
2天前
|
存储 关系型数据库 MySQL