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;
}
相关推荐
zhouping@2 小时前
[NPUCTF2020]ezinclude
android·web安全
中科三方2 小时前
域名管理常见问题:添加域名解析多久生效?为什么不能马上生效?
开发语言·php
恋猫de小郭2 小时前
Flutter Beta 版本引入 ScrollCacheExtent ,并修复长久存在的 shrinkWrap NaN 问题
android·前端·flutter
2401_853576502 小时前
C++中的策略模式变体
开发语言·c++·算法
lj850862 小时前
性能测试总结
java·开发语言·spring
阿蒙Amon2 小时前
C#常用类库-详解Ecng.Collections
开发语言·c#·ar
黄林晴2 小时前
你写过多少个重复的 @Preview?Compose 终于要解决这个问题了
android
m0_528174452 小时前
C++中的策略模式实战
开发语言·c++·算法
REDcker2 小时前
Android MediaCodec 架构与实现解析
android·架构