前言:
使用node连接mysql,这里是模糊查询方法完整流程
第一:安装我们的express脚手架 入口
第二:在根目录下创建model文件夹,里面放两个文件:
1、mysql.config.js 这里放的是我们的数据库配置
//配置链接数据库参数
module.exports = {
host : 'localhost',
port : 3306,//端口号
database : 'test',//数据库名
user : 'root',//数据库用户名
password : '123456'//数据库密码
};
2、mysql.js 这里是把mysql调用的方法简单封装了下
const mysql = require('mysql');
var databaseConfig = require('./mysql.config'); //引入数据库配置模块中的数据
//向外暴露方法
module.exports = {
query : function(sql,params,callback){
//每次使用的时候需要创建链接,数据操作完成之后要关闭连接
var connection = mysql.createConnection(databaseConfig);
connection.connect(function(err){
if(err){
console.log('数据库链接失败');
throw err;
}
//开始数据操作
//传入三个参数,第一个参数sql语句,第二个参数sql语句中需要的数据,第三个参数回调函数
connection.query( sql, params, function(err,results,fields ){
if(err){
console.log('数据操作失败');
throw err;
}
//将查询出来的数据返回给回调函数
callback && callback(results, fields);
//results作为数据操作后的结果,fields作为数据库连接的一些字段
//停止链接数据库,必须再查询语句后,要不然一调用这个方法,就直接停止链接,数据操作就会失败
connection.end(function(err){
if(err){
console.log('关闭数据库连接失败!');
throw err;
}
});
});
});
}
};
第三:我们来使用我们的express,搭建服务
1、在router里面新加一个mysql.js文件
2、在app.js中配置
var mysqlRouter = require('./routes/mysql');
app.use('/my', mysqlRouter);
3、在mysql.js中写入内容
var express = require('express');
var router = express.Router();
const db=require('../model/mysql.js');
/**
* 带分页和模糊查询的方法
* */
router.get('/table',(req,res) => {
//模糊查询的sql SELECT * FROM bloginformation WHERE blogTitle LIKE ? OR blogContent LIKE ? OR blogLable LIKE ?
var params = req.query || req.params;
let sql = "SELECT * FROM `table`"; //查询列表所有的数据
let content = [];
let isMore = false;//是否有多个查询参数
if(params.name){
// 模糊查询两种方法直接在SQL语句后加 mysql.escape("%"+req.body.name+"%")
// sql += " WHERE product_name LIKE "+mysql.escape("%"+req.body.name+"%")
sql += " WHERE name LIKE ?";
content.push( "%"+params.name+"%" );
isMore = true;
}
if(params.age){
if(isMore){//true代表有多个参数
sql += "and age like ?";//and是两个条件都必须满足,or是或的关系
}else{
sql += " WHERE age LIKE ?";
}
content.push( "%"+params.age+"%" );
}
if(params.page || params.page_size){//开启分页
let current = params.page;//当前页码
let pageSize = params.page_size;//一页展示多少条数据
sql += " limit ?,?";
content.push((current-1)*pageSize,parseInt(pageSize));
}
db.query(sql, content,function(result,fields){
res.json({
status:200,
message:result
})
});
})
module.exports = router;
更多: