用C++代码举例前后端分离开发的代码结构
时间: 2024-11-11 07:30:37 浏览: 9
cpp代码-C和C++的不同-2-bool
前后端分离的开发通常涉及将应用程序分为两个部分:前端(用户界面)和后端(服务器逻辑)。在C++项目中,虽然不是主流,但可以通过一些现代Web框架(如Poco、Wt等)结合RESTful API的方式来模拟这种架构。下面是一个简单的示例:
```cpp
// 后端(服务端,例如用C++编写RESTful API)
#include <Poco/Net/ServerSocket.h>
#include <Poco/Net/HTTPServerRequest.h>
#include <Poco/Net/HTTPServerResponse.h>
class MyWebService : public Poco::Net::HTTPRequestHandler {
public:
void handleRequest(Poco::Net::HTTPServerRequest& request, Poco::Net::HTTPServerResponse& response)
{
// 根据请求处理业务逻辑
if (request.path() == "/api/user") {
// 获取用户数据并返回JSON响应
std::string userData = getUserData(request);
response.setHeader("Content-Type", "application/json");
response.send(userData);
}
else {
// 不支持的路径,返回错误信息
response.setStatusAndReason(Poco::Net::HTTPStatus::NOT_FOUND, "Not Found");
}
}
private:
std::string getUserData(Poco::Net::HTTPServerRequest& request) { /* ... */ } // 实现获取用户数据的方法
};
int main() {
Poco::Net::ServerSocket socket(8080);
Poco::Net::HTTPServer server(&socket);
server.setHandler<MyWebService>();
server.start();
return 0;
}
// 前端(客户端,例如HTML+JavaScript,与后端通过API交互)
<!DOCTYPE html>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.6.0/jquery.min.js"></script>
<script>
$(document).ready(function() {
$.ajax({
url: '/api/user', // 调用后端API获取用户数据
type: 'GET',
success: function(data) {
console.log('User data:', data);
},
error: function(xhr, status, error) {
console.error('Error:', error);
}
});
});
</script>
```
在这个例子中,后端创建了一个HTTP服务器,处理来自前端的GET请求到"/api/user",并返回JSON数据。前端使用jQuery发送AJAX请求,与后端API交互。
阅读全文