nodejs中mysql使用limit出现的小问题

前端请求的url

参数限定获取的语句条数是10条

//js传参
import request from '../../../../utils/request';
let recommendListData = await request('/recommend/recommendpic', {begin:0,limit:10})

//request.js是封装的ajax请求
export default (url, data = {}, method = 'GET') => {
    return new Promise((resolve, reject) => {
        wx.request({
            url : 'http://127.0.0.1:8000' + url,
            data,
            method,
            success: (res) => {
                // 转入结果数据
                resolve({data :res.data.pics})
            },
            fail: (err) => {
                reject(err)
            }
          })
    })
}


后端:

封装的连接数据库代码 db/index.js

const mysql = require('mysql')

//建立连接
const db = mysql.createConnection({
    host:'127.0.0.1',//数据库的IP地址
    user:'root',
    password:'admin123',
    database:'my_db'//操作数据库的名字
})
//测试模块能否正常工作
db.query('select * from user',(err,results)=>{
    //mysql工作期间报错
    if(err) console.log(err.message)
    return results
})
// 暴露接口
module.exports = db

具体的查询操作 

const db = require('../db/index')

exports.getRecommendPic = (req, res) => {
    const sql = `select * from recommend limit ?,?`
    
    db.query(sql, [req.query.begin,req.query.limit], (err, results) => {
        //res.cc是写在后端入口文件的中间件函数,封装的是res.send(),注册在路由之前
        if(err) return res.cc(err)
        if(!results.length) return res.cc('推荐区图片加载失败!')
        res.send({
            status: 0,
            message:'推荐区图片加载成功!',
            pics : results
        })
    })
}

打印results时一直都是undefined,不能查询出数据


解决方案:

 db.query(sql, [parseInt(req.query.begin) ,parseInt(req.query.limit)], (err, results) => {...}

limit后占位符的数据类型应该是int类型,而req.query.begin和req.query.limit是string类型,所以一直无法查询。平常一直查询的都是string类型,很容易忽略实际数据类型,引以为戒。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值