Drogon 现代化C ++高性能框架

框架自带 GC 垃圾回收

现在ai时代,直接让ai写业务即可,直接上最强并发的框架。

业务 用 octane

高并发场景,正常来说也不会非常多接口,用 Drogon 完美。

hello.cpp

clike 复制代码
#include <drogon/drogon.h>
using namespace drogon;

int main() {
    // 数据库连接
    auto db = app().getDbClient(
        "mysql", "127.0.0.1", 3306,
        "你的库名", "账号", "密码", 1, "utf8mb4"
    );

    // ==========================
    // 接口1:Hello World
    // ==========================
    app().registerHandler("/hello", [](auto req, auto cb) {
        Json::Value r;
        r["code"] = 200;
        r["msg"] = "Hello Drogon 简化版!";
        cb(HttpResponse::newHttpJsonResponse(r));
    });

    // ==========================
    // 接口2:查询用户 ID=1
    // ==========================
    app().registerHandler("/user/getInfo", [db](auto req, auto cb) {
        auto sql = "SELECT id,username,phone FROM user WHERE id=?";

        // ↓↓↓ 这里我给你简化到最干净!
        db->execSqlAsync(sql, [cb](auto res) {
            Json::Value r;
            if (res.empty()) {
                r["code"] = 404;
                r["msg"] = "用户不存在";
            } else {
                r["code"] = 200;
                r["data"]["id"] = res[0]["id"].as<int>();
                r["data"]["name"] = res[0]["username"].as<string>();
            }
            cb(HttpResponse::newHttpJsonResponse(r));
        }, [cb](auto err) {
            Json::Value r;
            r["code"] = 500;
            r["msg"] = "查询失败";
            cb(HttpResponse::newHttpJsonResponse(r));
        }, 1);
    });

    app().addListener("0.0.0.0", 8081).run();
    return 0;
}
相关推荐
plainGeekDev1 小时前
null 判断 → Kotlin 可空类型
android·java·kotlin
plainGeekDev1 小时前
getter/setter → Kotlin 属性
android·java·kotlin
YXL1111YXL2 小时前
Handler 消息回收与协程异步执行的时序陷阱
android
恋猫de小郭3 小时前
KMP / CMP 鸿蒙版本 Beta 发布,他有什么特别之处?
android·前端·flutter
三少爷的鞋4 小时前
Android 协程并发控制:别动线程池,控制好并发语义就够了
android
LDR00618 小时前
Type-C 快充全面升级!LDR6601 赋能个人护理便携电机,重塑剃须刀 / 理发器新体验
c语言·开发语言
雪碧聊技术18 小时前
Tree.js是什么?一文讲透
开发语言·javascript·ecmascript
码云数智-园园18 小时前
C++20 Modules 模块详解
java·开发语言·spring
swordbob19 小时前
NIO的channel中什么是 fd(File Descriptor,文件描述符)
java·开发语言·nio
源分享19 小时前
Java线程同步的多种实现方法(非常详细)
java·开发语言·jvm