-
Notifications
You must be signed in to change notification settings - Fork 60
paozhu 框架hello world
主要是演示输出流程,熟悉框架架构
如果正确编译安装后我们要手动创建一个控制文件
src 创建 cpp文件
controller
- src
- testhello.cpp
大概这样子
#include <chrono>
#include <thread>
#include "httppeer.h"
#include "testhello.h"
namespace http
{
//@urlpath(null,hello)
std::string testhello(std::shared_ptr<httppeer> peer)
{
httppeer &client = peer->getpeer();
client << " Hello world! 🧨 Paozhu c++ web framework ";
return "";
}
}
namespace http
是命名空间
//@urlpath(null,hello)
是注解提取提示,null表示没有前置执行,地址是hello,也就是说http://localhost/hello
头部我们引入 testhello.h 文件,不用手动创建,等会我们执行cmake .. 时候自动创建
然后还是在http空间
std::string testhello(std::shared_ptr peer) 函数实现。
httppeer &client = peer->getpeer(); 语句是取得原始指针,用来重载用
client << " Hello world! 🧨 Paozhu c++ web framework ";
是重载输出,数据会存在client.output变量 跟直接
client.output=" Hello world! 🧨 Paozhu c++ web framework ";
peer->output=" Hello world! 🧨 Paozhu c++ web framework ";
一样。
最后返回空字符,函数结束,返回其它内容,高级应用会讲到。
这样我们创建完helloworld输出了
这个函数是 url访问时候调用我们刚才建立的testhello函数。
在build目录执行
cmake ..
make
将会看到行红色的字
You must cmake and make again because the .h header file has changed.
意识是框架自动生成了testhello.h文件内容,而且testhello函数也自动注册到common/autocontrolmethod.hpp文件中
在build目录重新执行cmake .. 重新加载 testhello.h 和testhello.cpp文件。
如果不重新加载,编译会出错,找到不到testhello.h 定义函数 执行
cmake ..
make
现在所有工作准备完毕。
完成后
cd ..
退回 根目录
sudo ./bin/paozhu
运行整个框架程序,linux 没有管理权限是用不了80端口
mac os 没有问题,当然,如果没有其它程序占用80 443端口
运行是成功的。如果要改端口 要在conf/server.conf 中修改,重新运行程序就可以了。
打开浏览器 http://localhost/hello
如果没有问题应该可以看到 testhello.cpp 里面的内容了
如果想测试https需要虚拟一个域名 框架提供一个www.869869.com ssl 文件在conf目录, 如果你有正式域名,也有ssl文件 安照www.xxx.com.crt方式存放。
vi 编辑/etc/hosts 文件
加一行 指向本地
127.0.0.1 www.869869.com
退出。
然后浏览器打开 https://www.869869.com/hello 也可以看到 testhello.cpp 里面的内容了