我創建了一個帶有 Web 服務器 DOCKER CONTAINER 的 PostgreSQL,并且我的應用程式使用 API 運行以管理所有端點。
我的 git repo 的鏈接是:https ://github.com/JulioValderrama/store-front-project.git
但是我在與資料庫的連接方面遇到問題,這取決于我的 .env 檔案中的 Postgres HOST 名稱值,兩臺服務器之一(一臺本地運行在 PORT 4000 中,Web 服務器在 PORT 3000 的 docker 容器中運行)將作業或將失敗。
我嘗試了下一個:
在 PORT 4000中運行的本地服務器
在 PORT 3000中運行的 Docker Web 服務器
主機“127.0.0.1”
- 即將:
http://localhost:3000/
作業正常并獲得回應,現在嘗試將其連接到我的任何資料庫 API 時:
http://localhost:3000/products
- 我得到錯誤:
"Could not get PRODUCTS. Error: Error: connect ECONNREFUSED 127.0.0.1:5432"
- 即將:
http://localhost:4000
作業正常并獲得回應,現在嘗試將其連接到我的任何資料庫 API 時:
http://localhost:4000/products
有用!我得到了我所有產品的清單!!
主機“postgres”
我放了“postgres”,因為我在網上看到你必須將 HOST 命名為創建的 postgres docker 映像,這是我的情況。它適用于遠程服務器。
- 即將:
http://localhost:3000
作業正常并獲得回應,然后在嘗試將其連接到資料庫 API 時:
http://localhost:3000/products
有用!!它給了我我的產品清單!
即將:
http://localhost:4000
作業正常并獲得回應,然后在嘗試將其連接到資料庫 API 時:
http://localhost:4000/products
它給了我錯誤:
"Could not get PRODUCTS. Error: Error: getaddrinfo ENOTFOUND postgres"
因此,由于服務器或主機名稱,嘗試連接資料庫時似乎出現錯誤,我不知道....
uj5u.com熱心網友回復:
在 docker-compose.yaml 中,您已將機器 5432 鏈接到容器 5432 埠。
如果您正在使用 docker 容器并希望訪問 postgres,請使用postgresas POSTGRES_HOSTvalue。
如果您在 docker 環境之外運行應用程式,請使用0.0.0.0, 127.0.0.1.
確保您沒有在本地安裝 postgres
brew uninstall postgres
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/517006.html
上一篇:如何在postgresltree欄位中獲取最后一個已知的連續值?
下一篇:如何計算自參考列中出現的次數?
