在网上看到了很多的教程,每次看到那些访问mysql的都头疼,如何映射表格乱七八糟的,大家学习node不就贪图方便么,写后台直接springboots不好么,这里提供了一个简单的又系统的访问msql的模板,欢迎大家使用
整个模板思路如下,
- 封装连接数据库的方法
- 用mapper来封装连接数据库的请求
- 再用路由调用并引入连接数据库请求并分装
- app.js直接调用封装好的路由文件
1.首先第一步,下载mpn模板
npm init --yes
2.下载完毕后,再下载express包(node框架),nodemon包(热更新)和mysql包(连接数据库)
npm install express --save
npm install -g nodemon //全局安装
npm install mysql
3.创建三个文件夹,文件夹Router用来放路由文件,文件夹mysqlconn用来连接数据库,文件夹mapper用来对数据库发送连接请求并处理,三个文件夹分别封装三个处理
4.连接数据库文件有两个,conn.js文件用来放连接信息,index.js文件用来连接数据库并封装请求
conn文件
let connection = {
host : 'localhost',
user : 'root',
password : '123456',
database : '你的数据库名称'
};
module.exports=connection;
index文件
let mysql = require('mysql');//引入mysql模块
var databaseConfig = require('./conn.js'); //引入数据库配置模块中的数据
//向外暴露方法
module.exports = {
async query(sql, params) {
//每次使用创建链接,数据操作完成关闭连接
var connection = mysql.createConnection(databaseConfig);
return new Promise((resolve, reject) => {//返回一个Promise对象
connection.connect(async function (err) {
if (err) {
console.log('数据库链接失败');
throw err;
}
//传入三个参数,第一个参数sql语句,第二个参数sql语句中需要的数据,第三个参数回调函数
connection.query(sql, params, function (err, results, fields) {
if (err) {
console.log('数据操作失败');
throw err;
}
//停止连接数据库
connection.end(function (err) {
if (err) {
console.log('关闭数据库连接失败!');
throw err;
}
});
resolve(results)
});
})
});
}
};
5.封装完连接数据库的请求后,再在mapper里面编写操作数据库的请求
mapper文件
var db = require("../mysqlconn/index")
var obj={
//两个简单的请求
async getcontext(id){
let data = await db.query('select id,title,context from book where id=? ', [id]);
return data;
},
async vaguetitle(title){
let data = await db.query('select id,title from love where book like "%'+title+'%" ', []);
return data;
},
}
module.exports=obj;
6.在路由文件里面调用mapper文件,将连接数据库得到的数返回到前端
Router文件
const express = require('express');
const router=express.Router();
const Book=require("../mapper/bookMapper");
//获取内容get接口,用异步的方法将数据返回给前端
router.get('/getcontext', (req, res) =>{
let {id}=req.query;
let p=Book.getcontext(id);
p.then((data)=>{
res.send(data)
})
})
//模糊标题
router.get('/vaguetitle', (req, res) =>{
let {title}=req.query;
let p=Book.vaguetitle(title);
p.then((data)=>{
res.send(data)
})
})
module.exports=router;
7.app.js调用路由文件即可
const express = require('express');
const app = express();
const BookRouter= require('./Router/BookRouter');
app.use(BookRouter)
app.listen(3001, () => {
console.log(`开启成功`)
})
这样一个简简单单的访问后台mysql服务器就完成了。
文章参考https://segmentfault.com/a/1190000014907972,并对其进行了改进,改为异步编程获取