https://blog.csdn.net/CuiCui_web/article/details/107042226这篇文章中介绍过如何连接数据库了,这里就不做过多的介绍。
1、 首先我们安装两个包,一个是解决跨域问题,还有一个是node中post请求参数会拿不到,需要借助插件
npm i cors
--save 解决跨域问题
npm i body
-parser
--save post请求参数
2、 在app.js中引入
const bodyParser
=require('body-parser');
const cors
= require('cors');
var app
= express();
app
.use(cors());
app
.use( bodyParser
.urlencoded({
extended
:false
}) );
3、 在接口文件中编写接口,如index.js文中,做好准备工作
var express
= require('express');
var router
= express
.Router();
const connection
= require('../db/database')
connection
.getConnection(function (err
,connection
) {
if(err
){
console
.log('与MySQL数据库建立连接失败!');
console
.log('错误信息为:' + err
);
}
else{
console
.log('与MsSQL数据库建立连接成功!');
}
});
.........
module
.exports
= router
;
…/db/database中就是数据库的配置
下面正式在index.js中编写接口
查询接口get请求(不带分页及参数)
router
.get('/demo', (req
, res
, next
)=> {
connection
.query('SELECT * FROM student_info', function(err
,result
){
console
.log(result
)
res
.send(result
);
});
});
我们可以在浏览器中输入 http://localhost:3000/demo 进行查看
查询接口post请求(带参数及分页条件)
router
.post('/demo', (req
, res
, next
)=> {
console
.log(req
.body
)
let name
= req
.body
.name
let pageSize
= req
.body
.pageSize
let pageCurrent
= req
.body
.pageCurrent
let start
=(pageCurrent
-1)*pageSize
;
connection
.query(`SELECT * FROM student_info WHERE name LIKE '%${name}%' LIMIT ${start},${pageSize}`,function(err
,result
){
if(err
) throw err
;
let list
= result
connection
.query(`SELECT COUNT(*) AS total FROM student_info`,function(err
,result1
){
if(err
) throw err
;
console
.log(result1
[0].total
)
let obj
= {
pageSize
: pageSize
,
pageCurrent
: pageCurrent
,
total
:result1
[0].total
,
list
: list
}
res
.send(obj
);
})
})
});
注意,这里遇到一个坑,sql执行后拿不到数据,是由于我在sql中编写了运算表达式SELECT * FROM student_info WHERE name LIKE '%${name}%' LIMIT ${(pageCurrent-1)}*${pageSize},${pageSize},导致为undefined。把运算提出来,let start=(pageCurrent-1)*pageSize; // 起始位置,就好了
新增数据 get请求
router
.get('/demo_add', function(req
, res
, next
) {
let params
= req
.query
;
if(params
){
console
.log(params
.name
,params
.age
,params
.address
,params
.id
)
params
.id
= 'NULL';
console
.log(params
)
connection
.query(`INSERT INTO student_info VALUES(${params.name},${params.age},${params.address},${params.id});`, function(err
,result
){
if(err
){
res
.send("新增失败"+err
);
}else {
res
.send("新增成功");
}
});
}
});
新增数据post请求
router
.post('/demo_add',(req
, res
, next
)=> {
let params
= req
.body
.val
;
console
.log(params
)
if(params
){
params
.id
= 'NULL';
connection
.query(`INSERT INTO student_info VALUES('${params.name}',${params.age},'${params.address}',${params.id});`, function(err
,result
){
if(err
){
res
.send("新增失败"+err
);
}else {
console
.log(result
,'新增')
res
.send("新增成功");
}
});
}
});
修改数据post请求
router
.post('/demo_update', (req
, res
, next
)=> {
let params
= req
.body
.val
;
if(params
){
connection
.query(`UPDATE student_info SET name='${params.name}',age=${params.age},address='${params.address}' WHERE id=${params.id} ;`, function(err
,result
){
if(err
){
res
.send("修改失败"+err
);
}else {
console
.log(result
,'修改')
res
.send("修改成功");
}
});
}
});
删除接口 delete
router
.delete('/demo_del',(req
, res
, next
)=> {
let params
= req
.body
.id
;
if(params
){
connection
.query(`DELETE FROM student_info WHERE id = ${params} ;`, function(err
,result
){
if(err
){
res
.send("删除失败"+err
);
}else {
console
.log(result
,'删除')
res
.send("删除成功");
}
});
}
})
本文前端代码展示是用react+element编写,文章链接https://blog.csdn.net/CuiCui_web/article/details/107108677