Golang中的Web应用程序,供脱机/浏览器使用

Golang中的Web应用程序,供脱机/浏览器使用,go,Go,我想创建一个简单的web应用程序来管理一些数据。该应用程序将使用PostgreSQL,但我不知道如何打包所有内容以使其在windows、linux和mac上运行。我可以交叉编译一个go二进制文件,其中包括web服务器等所有内容。。但是postgresql数据库将被忽略,因为它在本地作为单独的服务器运行。我听说过docker,但我不知道这是不是正确的解决方案 我是否应该创建一个docker容器并在其中包含PostgreSQL,以便在任何平台上启动该web应用程序?如果您想使用docker进行此操作

我想创建一个简单的web应用程序来管理一些数据。该应用程序将使用PostgreSQL,但我不知道如何打包所有内容以使其在windows、linux和mac上运行。我可以交叉编译一个go二进制文件,其中包括web服务器等所有内容。。但是postgresql数据库将被忽略,因为它在本地作为单独的服务器运行。我听说过docker,但我不知道这是不是正确的解决方案


我是否应该创建一个docker容器并在其中包含PostgreSQL,以便在任何平台上启动该web应用程序?

如果您想使用docker进行此操作,则必须创建一个平台特定的docker映像,其中包含平台特定的二进制文件。一旦你有了这些图像,你就可以使用docker compose来运行你的应用程序,并在它自己的容器中运行postgres实例。

你不需要docker来做这件事

由于用户必须首先安装Docker引擎,这会使事情变得复杂。Go完全能够用于跨平台应用,包括电池

决定您的应用程序是在浏览器选项卡中运行,还是应该有自己的窗口

例如,对于浏览器选项卡,为目标架构编译应用程序,并考虑对用户有意义的URL方案

localhost:8080/app=>用户界面。这条路线就是web应用程序,它提供HTML、JS和CSS。告诉用户运行可执行文件或将其作为服务安装,请参阅或使用特定于平台的工具,如。然后在浏览器中打开链接 localhost:8080/api=>后端路由。为用户界面发出的请求提供数据。用于与本地运行的Postgres服务器对话
如果你想让你的应用程序在自己的窗口中运行,请查看。请参阅:Go Api for Electron

谢谢mozey。这是真的,我完全同意你的看法。有一件事困扰着我,那就是数据库。PostgreSQL有自己的运行进程/服务器,不能捆绑到GO二进制文件中。因此,我认为在我的情况下,SQLITE或类似的基于文件的东西将是一个更好的选择。听起来客户端已经将Postgres作为本地的独立服务器。如果您需要捆绑一个单用户关系数据库,SQLite是一个很好的选择,它在golang中得到了很好的支持