:::success 常用指令: * `docker ps`:查看正在運行的容器 * `docker images`:查看已建立的影像檔 ::: :::info * 問題 ``` "error": "13 INTERNAL: (psycopg2.OperationalError) connection to server at \"localhost\" (127.0.0.1), port 5432 failed: Connection refused\n\tIs the server running on that host and accepting TCP/IP connections?\nconnection to server at \"localhost\" (::1), port 5432 failed: Cannot assign requested address\n\tIs the server running on that host and accepting TCP/IP connections?\n\n(Background on this error at: https://sqlalche.me/e/20/e3q8)" ``` 無法連接到port 5432 * 解決 用 ` docker compose up` 啟動 postgres、member 兩個服務,如果用 docker build 只會啟動單一服務 p.s. `-d` 可以在背景執行 ::: :::success * 問題 更新了 init.sql 但 table 欄位沒有確實更新 * 解決 因為資料庫已經初始化過了,它只會第一次建立 volume 時執行一次,所以要重新初始化資料庫 `docker compose down -v` `docker compose up --build` 其他可以查詢資料庫table的指令 `docker exec -it member-postgres psql -U snai-dev -d member`: `\dt`:列出目前資料庫中的所有table `\d member`:列出member(table)中的欄位 `SELECT * FROM member;`:查看member這個table中有那些值 ::: :::info * 生成secret key用的方法 * python -c "import secrets; print(secrets.token_urlsafe(32))" ::: :::success 驗證email 目的:這個 Email 是屬於這個使用者的,且他真的收得到信。 流程:使用者註冊帳號後,後端會產生驗證 token(使用 generate_email_token(uid)),建立一個驗證連結,透過 Email 寄送這個連結給使用者, 使用者打開信件點擊驗證連結 前端會接收到網址中的 token 參數,將 token 傳送給後端 API,後端驗證 token ::: :::info 用postman測試api步驟 1. 在一個bash下,/src/member資料夾執行 `docker compose up --build` 2. 在另一個bash下,/src/api-gateway執行`npm start` 3. 在postman輸入方法、網址、body內容即可看到回傳值 ![image](https://hackmd.io/_uploads/H1eS-TuHgg.png) :::