nodejs接收get请求后获取mysql数据返回到前端
数据库根据前端传过来的参数获取到数据后,无法传回到前端,自己琢磨的一天了,谢谢各位老师!后端代码:
router.get('/check', async (ctx, next) =>{
let datt=ctx.url;
let dat=datt.replace("&","=")
let ks=dat.split("=")
let js=dat.split("=")
let sql="SELECT * FROM 8month_yhgcj WHERE 日期 BETWEEN ? AND ?"
db.query(sql, ,function (err, result) {
if (result.length>0) {
result = JSON.stringify(result);
console.log(result);
} else {
console.log("数据库没内容");
}
});
ctx.body = result
// console.log(result);
});
前端代码:
wx.request({
url: 'http://127.0.0.1:8089/check',
data: {STDATA:'2021-08-11',ENDATA:'2021-08-17'},
method: 'GET', // OPTIONS, GET, HEAD, POST, PUT, DELETE, TRACE, CONNECT
header: {
'content-type': 'application/json'
},
success: function(res){
// success
console.log(res)
},
fail: function() {
// fail
},
complete: function() {
// complete
}
})
}, 你要写道查询的里面,查询那里是异步的。 (而且为啥是ctx,和next不是res和req,是我老了吗)
router.get('/check', async (ctx, next) =>{
let datt=ctx.url;
let dat=datt.replace("&","=")
let ks=dat.split("=")
let js=dat.split("=")
let sql="SELECT * FROM 8month_yhgcj WHERE 日期 BETWEEN ? AND ?"
db.query(sql, ,function (err, result) {
if (result.length>0) {
result = JSON.stringify(result);
console.log(result);
} else {
console.log("数据库没内容");
}
ctx.body = result
});
// console.log(result);
}); 现在实现不了,如果把
ctx.body = result换成ctx.body = “1234” 就可以返回1234,但是前面数据库获取的result怎么不能返回到前端啊 看看是不是 async 和 await 的问题,一般需要同时搭配使用,或者同时不使用 copy1024 发表于 2021-8-18 16:19
看看是不是 async 和 await 的问题,一般需要同时搭配使用,或者同时不使用
我自己也猜测是同步、异步的问题,但是我自己不会啊{:1_937:} 执行 send 方法
router.post('/getbannerb', function(req, res, next) {
let { position }= req.body;
if(position=== '1'){
let queryString = "select * from banner_b";
db.query(queryString, function(err, rows){
if (err) {
res.send(err);
}else {
dataBox.code = 200;
dataBox.msg = '成功';
dataBox.data = rows;
req.session.username = req.body.username;
res.send(dataBox);
}
})
}else {
let queryString = "select * from banner_s";
db.query(queryString, function(err, rows){
if (err) {
res.send(err);
}else {
dataBox.code = 200;
dataBox.msg = '成功';
dataBox.data = rows;
req.session.username = req.body.username;
res.send(dataBox);
}
})
}
}); 含笑阁 发表于 2021-8-18 16:24
你要写道查询的里面,查询那里是异步的。 (而且为啥是ctx,和next不是res和req,是我老了吗)
不好意思,我是刚接触,见效了,按你说的方法,还是获取不到:'(weeqw zhou773 发表于 2021-8-18 16:24
执行 send 方法
router.post('/getbannerb', function(req, res, next) {
...
你好,你这是post请求吗?我看着有点乱,可以在我的代码基础上做修改吗?谢谢:'(weeqw 大兵马元帅 发表于 2021-8-18 16:31
不好意思,我是刚接触,见效了,按你说的方法,还是获取不到
你把ctx.boy 那行换一下
改成 ctx.send(result)
可以参考楼长的代码 含笑阁 发表于 2021-8-18 16:36
你把ctx.boy 那行换一下
改成 ctx.send(result)
可以参考楼长的代码
按你说的,换了一行代码,在两个地方都换了,也是都不行,返回内容见图片{:1_937:}