web开发框架,C++开发web
乌鸦的安装与构建前言项目地址:
https://github.com/crowcpp/crow
官方网站及文档说明:
https://crowcpp.org/master/
缘由:
前几天一直在寻找一款C的网框架,通过不断的在Github、StackOverFlow以及搜索引擎上搜索,最终我还是选择了乌鸦这一框架,其他相关框架还有休息,上菜,休息,微软的C REST SDK等,Github相关搜索c休息框架.
结果在测试用例构建时候,似乎遇到了一个bug,于是我提交了一个问题,得到了开发人员的回复,最终问题得到了解决,在此,再次感谢项目维护人员的付出!
配置环境本篇文章为Linux操作系统操作系统安装。其他平台或具体最低要求等,还请见官方说明文档。
Ubuntu 20。0 .4 gcc 9。4 .0 boost 1.71 asio 1.22。1做3.24。0到目前为止,Corw依赖使用的音频流输入输出接口已经为脱离促进的独立版。
相关安装参考文章:
促进与独立版的音频流输入输出接口安装详见——独立版的澳洲安全情报局安装与使用](https://www . cn blogs . com/kolane/p/12057777 . html)CMake安装详见—— ubuntu安装第一种相关问题解决参考文章:
找不到软件包—— Linux新手入门:找不到包错误解决办法
安装乌鸦从源码安装,详见官方说明文档。
饭桶克隆https://github.com/CrowCpp/Crow.git进入乌鸦目录,创建建设目录,并进入。
创建目录构建
激光唱片构建制作.-DCROW _ BUILD _ EXAMPLES=OFF-DCROW _ BUILD _ TESTS=OFF make install hello world # include crow。h
int main(){
乌鸦:简单的app app
//测试
CROW_ROUTE(app,/test)([](){
返回《Hello world》;
});
应用程序端口(18888).多线程()。run();
}编译
g g主。CPP-o main-lpthreadCMake #指定版本
cmake_minimum_required(版本3.24)
# 项目名
项目(主要)
# 使用指定源文件来生成目标可执行文件
add_executable(main main.cpp)
# 引入外部依赖包
查找包(需要乌鸦)
# 目标文件与库文件进行链接
目标_链接_库(主公共乌鸦:乌鸦)测试
我的第一个程序CROW_ROUTE(app,/low_price_recommend ).方法( POST _ method)([](const crow:request req){
auto x=crow:JSON:load(req。体);
crow:JSON:w值return _ ret({ });//返回结果
如果(!x){//参数不全
return _ ret[ status _ code ]=STD:string( 0 );
return crow:response(return _ ret);
}否则{
return _ ret=my函数。低价推荐(
x[航班日期]。s(),
x[航班_出发]。s(),
x[航班_到达]。s(),
x[航班代理人].s(),
x[flight_retCounts].s());
return crow:response(return _ ret);
}
});我的功能为我封装的一个类创建的对象,低价_推荐为其中的一个方法。返回一个crow:json:wvalue。变量x为具体传进来的参数crow:json:wvalue为返回的数据格式数据
通过x[].s()将对应的参数转成线可能出现的问题CMake找不到澳洲安全情报局库,例如如下所示:CMake错误位于/usr/local/share/CMake-3.24/Modules/cmakefinddependencymacro。CMake:47(查找_包):
通过不在CMAKE _模块_路径中提供“Findasio.cmake”,此项目具有
要求CMake查找“亚洲情报组织”提供的包配置文件,但是
CMake没有找到。
找不到由“亚洲情报组织”提供的带有任何
以下名称:
asioConfig.cmake
asio-config.cmake
将安装前缀“亚洲情报组织”添加到CMAKE _前缀_路径或设置
" asio_DIR "到包含上述文件之一的目录。如果“亚洲情报组织”
提供一个单独的开发包或SDK,确保它已经
已安装。
调用堆栈(最近的调用在前):
/usr/local/lib/cmake/Crow/Crow配置。cmake:32(find _ dependence)
CMakeLists.txt:6 (find_package)
-配置不完整,出现错误!
另请参见"/root/flight _ query _ system/query _ system/build/cmake files/cmake output。日志.解决打开并编辑这个文件/usr/local/lib/cmake/Crow/Crow配置。第一种大概在30行左右,将这行
列表(追加CMAKE _ MODULE _ PATH $ { CMAKE _ CURRENT _ SOURCE _ DIR }/CMAKE)替换为
列表(追加CMAKE _ MODULE _ PATH $ { CROW _ CMAKE _ DIR })再次感谢乌鸦项目维护成员卢卡施莱克尔老哥的解答,以及所有维护此项目的成员。
官方时间晃动讨论聊天室——乌鸦叉/社区
解决跨域问题官方文档原问题。包括crow.h
#include query/query.h
#include common/common.h
#包括“乌鸦/中间件/CORS”。 h
int main(){
crow:App crow:CORSHandler App;
自动CORS=应用程序。get _中间件crow:CORSHandler
克-奥二氏分级量表。全局()。原点( * )。标头(来源,x-请求-与,接受,访问控制-允许-来源,授权,内容-类型)。方法( POST_method, GET_method, PUT_method, DELETE_method, PATCH_method, OPTIONS _ method);
//测试
CROW_ROUTE(app,/hello)([](){
返回《Hello world》;
});
应用程序端口(18888).多线程()。run();
}
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。