吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 1819|回复: 39
收起左侧

[求助] nodejs接收get请求后获取mysql数据返回到前端

[复制链接]
大兵马元帅 发表于 2021-8-18 16:02
45吾爱币
数据库根据前端传过来的参数获取到数据后,无法传回到前端,自己琢磨的一天了,谢谢各位老师!
[JavaScript] 纯文本查看 复制代码
后端代码:
router.get('/check', async (ctx, next) =>{
    let datt=ctx.url;   
    let dat=datt.replace("&","=")
    let ks=dat.split("=")[1]
    let js=dat.split("=")[3]
    let sql="SELECT * FROM 8month_yhgcj WHERE 日期 BETWEEN ? AND ?"
    db.query(sql, [ks,js],function (err, result) {
        if (result.length>0) {
            result = JSON.stringify(result);
            console.log(result);
            
            
        } else {
            console.log("数据库没内容");
        }    
        
        
    }); 
    ctx.body = result
    
    // console.log(result);
});



[JavaScript] 纯文本查看 复制代码
前端代码:
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,是我老了吗) [mw_shl_code=javascript,true]router.get('/check', async (ctx, next) =>{ let datt=ctx.url; let dat=datt.replace("&","=") let ks=dat.split("=")[1] let js=dat.split("=")[3] let sql="SELECT * FROM 8month_yhgcj WHERE 日期 BETWEEN ? AND ?" db.query(sql, [ks,js],function (err, result) { ...

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

含笑阁 发表于 2021-8-18 16:02
你要写道查询的里面,查询那里是异步的。 (而且为啥是ctx,和next不是res和req,是我老了吗)
[JavaScript] 纯文本查看 复制代码
router.get('/check', async (ctx, next) =>{
    let datt=ctx.url;   
    let dat=datt.replace("&","=")
    let ks=dat.split("=")[1]
    let js=dat.split("=")[3]
    let sql="SELECT * FROM 8month_yhgcj WHERE 日期 BETWEEN ? AND ?"
    db.query(sql, [ks,js],function (err, result) {
        if (result.length>0) {
            result = JSON.stringify(result);
            console.log(result);
             
             
        } else {
            console.log("数据库没内容");
        }    
         ctx.body = result
         
    }); 
    
     
    // console.log(result);
});
 楼主| 大兵马元帅 发表于 2021-8-18 16:14
现在实现不了,如果把
ctx.body = result  换成ctx.body = “1234” 就可以返回1234,但是前面数据库获取的result怎么不能返回到前端啊
copy1024 发表于 2021-8-18 16:19
看看是不是 async 和 await 的问题,一般需要同时搭配使用,或者同时不使用
 楼主| 大兵马元帅 发表于 2021-8-18 16:20
copy1024 发表于 2021-8-18 16:19
看看是不是 async 和 await 的问题,一般需要同时搭配使用,或者同时不使用

我自己也猜测是同步、异步的问题,但是我自己不会啊
zhou773 发表于 2021-8-18 16:24
执行 send 方法
[JavaScript] 纯文本查看 复制代码
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:31
含笑阁 发表于 2021-8-18 16:24
你要写道查询的里面,查询那里是异步的。 (而且为啥是ctx,和next不是res和req,是我老了吗)
[mw_shl_code= ...

不好意思,我是刚接触,见效了,按你说的方法,还是获取不到
1111111.png

点评

你把ctx.boy 那行换一下 改成 ctx.send(result) 可以参考楼长的代码  详情 回复 发表于 2021-8-18 16:36
 楼主| 大兵马元帅 发表于 2021-8-18 16:33
zhou773 发表于 2021-8-18 16:24
执行 send 方法
[mw_shl_code=javascript,true]router.post('/getbannerb', function(req, res, next) {
...

你好,你这是post请求吗?我看着有点乱,可以在我的代码基础上做修改吗?谢谢
含笑阁 发表于 2021-8-18 16:36
大兵马元帅 发表于 2021-8-18 16:31
不好意思,我是刚接触,见效了,按你说的方法,还是获取不到

你把ctx.boy 那行换一下
改成 ctx.send(result)
可以参考楼长的代码
 楼主| 大兵马元帅 发表于 2021-8-18 16:41
含笑阁 发表于 2021-8-18 16:36
你把ctx.boy 那行换一下
改成 ctx.send(result)
可以参考楼长的代码

按你说的,换了一行代码,在两个地方都换了,也是都不行,返回内容见图片
123.png
2345.png

点评

, 位置还是要放到db.query的括号里的  详情 回复 发表于 2021-8-18 16:42
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-25 22:34

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表