Skip to content

paozhu 框架hello world

Huang ziquan edited this page May 30, 2023 · 5 revisions

paozhu 框架hello world

主要是演示输出流程,熟悉框架架构

如果正确编译安装后我们要手动创建一个控制文件

1、到controller目录

src 创建 cpp文件

controller

  • src
    • testhello.cpp

大概这样子

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函数。

2、预编译

在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

现在所有工作准备完毕。

3、执行

完成后

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 里面的内容了