Node.js 是一种轻量级服务端的JavaScript语言,最重要的是还备了多个框架,其中 mysql 是一种较流行的关系型数据库管理系统 。
本文章学习 mysql 与 node.js 如何交互使用。
参考链接:https://github.com/mysqljs/mysql#readme
安装
$ npm install mysql //node.js自带的npm命令
初次使用
//1、nodejs下调用mysql框架
var mysql = require('mysql');
//2、mysql的createConnection方法,创建连接对象
var connection = mysql.createConnection({
host:'localhost',
user:'root',
password:'root',
port:'3306',
});
//3、连接sql,可以无参
connection.connect(function(err){
if(err){
console.log("连接失败");
}else{
console.log("连接成功");
}
});
//4、执行sql,简单明了
connection.query('select 1+1 as result',function(err,results){
if(err){
console.log('执行失败');
}else{
console.log('执行成功');
console.log('结果是' + results[0].result);
}
})
//5、断开sql,完成了
connection.end();
根据以上可得出,调用需要用到五个步骤,其中 query
方法应该是最重要的,涉及到了实现后端传送sql语句到数据库。
主要想记一下connection.query
方法的使用。
数据库操作
我首先创建了一个数据库 school ,在数据库中新建一个表 student(id,name,score);
然后修改一下 connection 的参数
var connection = mysql.createConnection({
host:'localhost',
user:'root',
password:'root',
port:'3306',
database:'school'
});
接下来只要修改一下上面的connection.query
方法并插入一些语句就可以了。
数据插入
var addSql = 'insert into student(id,name,score) values(?,?,?)';
var addSql_Params = ['100001','chen',88];
connection.query(addSql,addSql_Params,function(err,result){
if(err){
console.log('插入失败' + err);
return;
}
console.log('插入成功');
console.log(result);
})
从执行结果可以看出result包含一些重要的信息,之后可能会用到。
数据更新
var updateSql = "update student set name = ?,score = ? where id='3'";
var undateSql_Params = ["air", '95'];
connection.query(updateSql,undateSql_Params,function(err,result){
if(err){
console.log('更新失败' + err);
return;
}
console.log('更新成功');
console.log(result);
})
执行结果看出,是否改变可以看 changedRows
是否大于0
数据查询
var selectSql = 'select * from student';
connection.query(selectSql,function(err,result){
if(err){
console.log('查询失败' + err);
return;
}
console.log('查询成功');
console.log(result);
})
从执行结果可以看出返回一个JSON格式的数组。
数据删除
var deleteSql = " delete from student where name='huang' ";
connection.query(deleteSql,function(err,result){
if(err){
console.log('删除失败' + err);
return;
}
console.log('删除成功');
console.log(result);
})
从执行结果可以看出 affectedRows:1
应该可以看出受影响了1行
看来使用非常简单,那就好说了!
想尝试把数据库的数据渲染到HTML页面上。
数据库数据渲染到HTML
涉及到后端与前端交互的知识,不得不说node.js了,这里使用到了node.js的express框架
(之后再写一下学习笔记整理一下把!)
简单试着实现一波
//express和mysql框架
var express = require('express');
var mysql = require('mysql');
var app=express();
//mysql的连接
var connection = mysql.createConnection({
host:'localhost',
user:'root',
password:'root',
port:'3306',
database:'school'
})
connection.connect();
var mySql = " select * from student ";
var myResult = " "; //将获得的数据保存到myResult
connection.query(mySql,function(err,result){
if(err){
console.log('查询失败' + err);
return;
}
//由于浏览器无法直接识别从数据库获得的数据result,需要用JSON解析
myResult = JSON.stringify(result);
console.log(myResult);
})
//get方法
app.get('/',function(req,res){
res.send(myResult); //发送到网页前端
})
connection.end();
//监听端口,默认localhost:3000
app.listen(3000);
基本的功能也就实现了,之后还得上手数据库的交互,前端数据获取等等。