1
0
mirror of synced 2025-04-28 09:25:05 +03:00

Changed to return 'Server&' from 'get' and 'post'

This commit is contained in:
yhirose 2017-11-25 11:58:09 -05:00
parent 4d62b15d94
commit 1e3ef46862
2 changed files with 30 additions and 32 deletions

View File

@ -133,8 +133,8 @@ public:
Server(); Server();
virtual ~Server(); virtual ~Server();
void get(const char* pattern, Handler handler); Server& get(const char* pattern, Handler handler);
void post(const char* pattern, Handler handler); Server& post(const char* pattern, Handler handler);
bool set_base_dir(const char* path); bool set_base_dir(const char* path);
@ -846,14 +846,16 @@ inline Server::~Server()
{ {
} }
inline void Server::get(const char* pattern, Handler handler) inline Server& Server::get(const char* pattern, Handler handler)
{ {
get_handlers_.push_back(std::make_pair(std::regex(pattern), handler)); get_handlers_.push_back(std::make_pair(std::regex(pattern), handler));
return *this;
} }
inline void Server::post(const char* pattern, Handler handler) inline Server& Server::post(const char* pattern, Handler handler)
{ {
post_handlers_.push_back(std::make_pair(std::regex(pattern), handler)); post_handlers_.push_back(std::make_pair(std::regex(pattern), handler));
return *this;
} }
inline bool Server::set_base_dir(const char* path) inline bool Server::set_base_dir(const char* path)

View File

@ -122,34 +122,30 @@ protected:
svr_.set_base_dir("./www"); svr_.set_base_dir("./www");
svr_.get("/hi", [&](const Request& req, Response& res) { svr_.get("/hi", [&](const Request& req, Response& res) {
res.set_content("Hello World!", "text/plain"); res.set_content("Hello World!", "text/plain");
}); })
.get("/", [&](const Request& req, Response& res) {
svr_.get("/", [&](const Request& req, Response& res) { res.set_redirect("/hi");
res.set_redirect("/hi"); })
}); .post("/person", [&](const Request& req, Response& res) {
if (req.has_param("name") && req.has_param("note")) {
svr_.post("/person", [&](const Request& req, Response& res) { persons_[req.params.at("name")] = req.params.at("note");
if (req.has_param("name") && req.has_param("note")) { } else {
persons_[req.params.at("name")] = req.params.at("note"); res.status = 400;
} else { }
res.status = 400; })
} .get("/person/(.*)", [&](const Request& req, Response& res) {
}); string name = req.matches[1];
if (persons_.find(name) != persons_.end()) {
svr_.get("/person/(.*)", [&](const Request& req, Response& res) { auto note = persons_[name];
string name = req.matches[1]; res.set_content(note, "text/plain");
if (persons_.find(name) != persons_.end()) { } else {
auto note = persons_[name]; res.status = 404;
res.set_content(note, "text/plain"); }
} else { })
res.status = 404; .get("/stop", [&](const Request& req, Response& res) {
} svr_.stop();
}); });
svr_.get("/stop", [&](const Request& req, Response& res) {
svr_.stop();
});
persons_["john"] = "programmer"; persons_["john"] = "programmer";