在玩这个之前呢,必须先检查自己电脑有没有安装node和MySql
在终端输入:node -v(如之前已安装过node的话,则会出现node的版本号)
如图:

若没有安装node,请到官网下载安装相应的版本: https://nodejs.org/zh-cn/
若没有安装MySql,也可以到官网下载安装:https://www.mysql.com/(安装MySql的时候,要切记你设置的密码,因为在终端运行MySql的时候会有用到)。
注:本文是在Mac环境下运行的
一切准备就绪:
第一步:启动MySql
打开系统偏好设置,你会看到MySql这个图标,然后点MySql,再按启动MySql服务按钮,如呈绿色则代表启动成功。当然你也可以通过终端启动命令:mysql -u root -p来启动服务。


第二步:安装数据库
我呢,就用老伙计给我推荐的Navicat Premium,当然你们可以安装其他的。在这里呢就不描述在终端运行MySql的命令了,怎么简单就怎么来吧。

1、创建新的MySql链接,里面的信息得留意一下,因为连接数据库的时候需要用到这些信息(如:连接名、端口以及密码等),我就在这创建一个test连接,创建完呢,左上角就会新增你创建的MySql连接了,然后打开连接你会看到很多库,这些库你也不用去理会,但是千万别乱删,会出车祸的。另外我在其中加了test这个库;


2、创建自己的的表。打开数据库后呢,你会看到一些杂七杂八的东西,这些东西目前我也没有去深究,就不做多介绍。在这里们建立自己的表即可,当然你在这里可以新建表也可以直接从外面导入你的表:

3、添加默认数据(为了方便理解)

运行node,实现增删查改
首先呢,我需要在node环境下把mysql引进来,并且要连接上你的数据库
var mysql = require('mysql')
var connection = mysql.createConnection({
host : 'localhost',
user : 'root',
password : '5204261215', // 创建mysql连接时的密码
port: '3306', // 创建mysql连接时的端口,一般都有默认
database: 'test' // 连接名
});
connection.connect(); // 实现连接
增:新建一个addSql.js文件,通过sql语句实现在数据库新增数据,然后在终端通过node运行addSql.js,最后查看数据库中将多出菜鸟工具这条数据。
var addSql = 'INSERT INTO websites(Id,name,url,alexa,country) VALUES(0,?,?,?,?)';
var addSqlParams = ['菜鸟工具', 'https://c.runoob.com','23453', 'CN'];
connection.query(addSql, addSqlParams, function (err, result) {
if(err){
console.log('[INSERT ERROR] - ',err.message);
return;
}
console.log('--------------------------INSERT----------------------------');
//console.log('INSERT ID:',result.insertId);
console.log('INSERT ID:',result);
})
connection.end();

删:新建一个delSql.js文件,通过sql语句实现在数据库新增数据,然后在终端通过node运行delSql.js,最后查看数据库中将删除id=1的这条数据
var delSql = 'DELETE FROM websites where id=1';
connection.query(delSql,function (err, result) {
if(err){
console.log('[DELETE ERROR] - ',err.message);
return;
}
console.log('--------------------------DELETE----------------------------');
console.log('DELETE affectedRows',result.affectedRows);
});
connection.end();

查:新建一个searchSql.js文件,通过sql语句实现在数据库新增数据,然后在终端通过node运行searchSql.js,由于数据库中数据比较少,所以我就全部查出来。
var sql = 'SELECT * FROM websites';
connection.query(sql,function (err, result) {
if(err){
console.log('[SELECT ERROR] - ',err.message); // 在终端将打印出所查询的数据
return;
}
console.log('--------------------------SELECT----------------------------');
console.log(result);
});
connection.end();

改:新建一个updataSql.js文件,通过sql语句实现在数据库新增数据,然后在终端通过node运行updataSql.js,最终将修改数据库中d=3的那条数据的name改为“Jacky在学node”,url改为“https://m.runoob.com
var modSql = 'UPDATE websites SET name = ?, url = ? WHERE Id = ?';
var modSqlParams = ['Jacky在学node', 'https://m.runoob.com',3]; // 将id=3的那条数据的name改为“Jacky在学node”,url改为“https://m.runoob.com”
connection.query(modSql, modSqlParams, function (err, result) {
if(err){
console.log('[UPDATE ERROR] - ',err.message);
return;
}
console.log('--------------------------UPDATE----------------------------');
console.log('UPDATE affectedRows',result.affectedRows);
})
connection.end();

目前呢,node连接mysql的简单实现就到这里了。
git上面有我从0开始学node的demo和源码,有兴趣的可以一起学习。入门的话认真学2个星期基本上就可以了。
git地址:https://github.com/Jacky-MYD/learn_nodeJs
网友评论