首页 > 其他分享 >drogon orm分页问题,req->getJsonObject()为空会导致Segmentation fault

drogon orm分页问题,req->getJsonObject()为空会导致Segmentation fault

时间:2024-06-22 17:42:27浏览次数:3  
标签:getJsonObject admin fault req list Segmentation json auto

2024年6月22日17:14:12

req->getJsonObject()获取json数据的时候,如果没有提前判断

        if (req->getJsonObject() == nullptr)
        {
            throw std::invalid_argument("参数json不能为空");
        }

        auto jsonPtr = req->getJsonObject();

官方文档:https://github.com/drogonframework/drogon/wiki/CHN-08-3-数据库-ORM#mapper的链式接口
Mapper的链式接口
有些常见的sql约束,比如limit,offset等等,Mapper类模板也提供了支持,以链式接口的形式提供,意味着用户可以把多个约束串起来写。执行完任何一个接口,这些约束会被清空,也就是说,这些约束是在一次操作中有效的,比如:

Mapper<Users> mp(dbClientPtr);
auto users = mp.orderBy(Users::Cols::_join_time).limit(25).offset(1).findAll();

这段程序是从users表中选择用户列表,每页25行的第一页

Json::Value ret;
    ret["code"] = SUCCESS;
    ret["msg"] = SUCCESS_MSG;

    try
    {
        if (req->getJsonObject() == nullptr)
        {
            throw std::invalid_argument("参数json不能为空");
        }

        auto jsonPtr = req->getJsonObject();

        // 转换指针
        auto pJson = *jsonPtr;
        LOG_DEBUG << pJson.toStyledString();
        // 获取对应的参数
        std::string page = pJson.get("page", 1).asString();
        std::string pageSize = pJson.get("pageSize", 10).asString();

        auto clientPtr = drogon::app().getDbClient();
        Mapper<Admin> mp(clientPtr);

        std::vector<Admin> admin_list = mp.orderBy(Admin::Cols::_id).limit(std::stoi(pageSize)).offset(std::stoi(page)).findAll();

        auto count = admin_list.size();
        auto list = admin_list;

        Json::Value data;
        data["count"] = count;

        Json::Value json_list;
        if (count > 0)
        {
            for (auto admin : admin_list)
            {
                json_list.append(admin.toJson());
            }
        }

        data["list"] = json_list;

        ret["data"] = data;
        auto resp = HttpResponse::newHttpJsonResponse(ret);
        resp->setStatusCode(k200OK);
        callback(resp);

链式接口基本可以望文生义,这里不再一一赘述,请参考Mapper.h头文件。

标签:getJsonObject,admin,fault,req,list,Segmentation,json,auto
From: https://www.cnblogs.com/zx-admin/p/18262555

相关文章

  • GSVA: Generalized Segmentation via Multimodal Large Language Models论文阅读笔记
    Motivation&AbsGeneralizedReferringExpressionSegmentation(GRES):相比于原始的RES任务,一个文本描述里可能出现多个需要分割的物体,或者没有需要分割的物体,难点在于建模不同实体之间复杂的空间关系,以及识别不存在的描述。现有的方法如LISA难以处理GRES任务,为此作者提出了GSV......
  • 【python】OpenCV—Segmentation
    文章目录cv2.kmeans牛刀小试cv2.kmeanscv2.kmeans是OpenCV库中用于执行K-Means聚类算法的函数。以下是根据参考文章整理的cv2.kmeans函数的中文文档:一、函数功能cv2.kmeans用于执行K-Means聚类算法,将一组数据点划分到K个簇中,使得簇内的数据点尽可能相......
  • CVPR2024 分割Segmentation相关论文37篇速览
    Paper1MFP:MakingFullUseofProbabilityMapsforInteractiveImageSegmentation摘要小结:最近的交互式分割算法中,将先前的概率图作为网络输入,以帮助当前分割轮次的预测。然而,尽管使用了先前的掩膜,概率图中包含的有用信息并没有很好地传播到当前预测中。在本文中,为......
  • InternalFault测试策略设计及测试框架搭建分享
    1.Internalfault介绍1.1原理使用ECU内部故障模块关联信号无效故障的诊断,周期读取内部故障状态,并将相关的故障事件存储在应用的非易失性存储器(Nvm)中,通过22读取Nvm中故障的状态,存储的故障信息可以通过例程控制服务0x31清除。1.2数据结构Internalfault的数据结构组成......
  • 【例1334】get default part units 获取默认零件单位
    文章作者:里海来源网站:NX二次开发官方案例专栏简介《getdefaultpartunits获取默认零件单位》这是一个NX二次开发官方小例子,下面是代码和解析。相较于混乱、未经验证的代码,官方案例能够确保开发者获得准确的开发方法,这些官方示例代码经过严格测试,能够正确地反映出NX......
  • Maven无法下载依赖之 maven-default-http-blocker (http://0.0.0.0/): Blocked mirror
    问题:maven-default-http-blocker(http://0.0.0.0/):Blockedmirrorforrepositories:原因:名称为maven-default-http-blocker的拦截器拦截了库的镜像。场景:在企业内部架设了一个Nexus的私有库,库的地址是:http://hostname:8081/repository/maven-public/,于是在项目中需要从这......
  • LISA: Reasoning Segmentation via Large Language Model
    Motivation&Abs现有的感知系统依赖人类的指示,难以主动推理以理解人类意图。新任务:reasoningsegmentation,模型需要根据给定的复杂/具有隐含意义的文本输出相应的segmask。新的benchmark:包含1000张左右图像的数据集(image-instruction-mask)。模型:LISA,既有LLM的语言生成能力......
  • WPF DataContext order and filter via CollectionViewSource.GetDefaultView(DataCon
    //xaml<Windowx:Class="WpfApp146.MainWindow"xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"xmlns:d="http://schemas.mi......
  • WPF CollectionViewSource.GetDefaultView ICollectionViewLiveShaping IsLiveSorting
    <Windowx:Class="WpfApp147.MainWindow"xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"xmlns:d="http://schemas.microsoft......
  • @Builder.Default 及@Builder
    lombok中注解@Builder修饰类的时候,相关属性字段额外设置的默认值会失效,如何解决这个问题:在需要使用builder构造模式生产对象的时候,相关属性上带上@Builder.defalut注解修饰就可以范例@AllArgsConstructor@NoArgsConstructor@Builder@EqualsAndHashCode(callSuper=tr......