」工欲善其事,必先利其器。「—孔子《論語.錄靈公》
首頁 > 程式設計 > 使用 Vercel 和 Supabase 部署 NestJS 應用程式

使用 Vercel 和 Supabase 部署 NestJS 應用程式

發佈於2024-11-12
瀏覽:420

了解部署到 Vercel 非常簡單,但是,在部署過程中需要考慮一些設定。

先決條件

  • NestJS專案在開發環境中與PostgreSQL本地連線並正常運作
  • 部署的 Vercel 帳戶
  • Supabase 帳戶(我們將在這裡設定 PostgreSQL 資料庫)

考慮到您的 NestJS 應用程式已準備好部署,讓我們從 Supabase 設定開始。

蘇帕基帳戶

Supabase 是一個開源 Firebase 替代方案,完全支援並無縫配置 PostgreSQL 資料庫,而且它還提供其他功能,如身份驗證、儲存等。

在 Supabase 上設定一個新帳戶並在該帳戶中建立一個新專案。

Deploying NestJS Application using Vercel and Supabase

設定完成後,點選首頁頁面上的連線按鈕。這將向您展示將資料庫連接到專案的不同選項

Deploying NestJS Application using Vercel and Supabase

使用提供的憑證測試本地連接,以確保一切正常運作。

注意:確保憑證不會暴露並儲存在您的 .env 檔案中(我相信您已經知道這一點?)

接下來,讓我們設定 Vercel 帳戶並部署專案

韋爾塞爾

通常,Vercel 主要用於前端應用程式部署,但是,它也可用於部署後端專案。

PS: 如果您正在為後端部署開發中型到大型項目,請改用合適的服務提供者。

在您的 Vercel 帳戶上,建立一個新專案並連接到您的 Git 儲存庫。匯入您的 .env 檔案並點擊 Deploy 按鈕。

Deploying NestJS Application using Vercel and Supabase

瞧,就是這樣? ? ? 。
...

可能遇到的常見問題

# 錯誤:沒有名為「public」的輸出目錄

Deploying NestJS Application using Vercel and Supabase

這是一個常見錯誤,因為 Vercel 在建置過程中需要知道您的輸出目錄。要解決此問題,只需新增 versel.json 檔案並複製以下內容:

{
  "version": 2,

  "builds": [
    {
      "src": "src/main.ts",
      "use": "@vercel/node"
    }
  ],
  "routes": [
    {
      "src": "/(.*)",
      "dest": "src/main.ts",
      "methods": ["GET", "POST", "PUT", "DELETE", "PATCH", "OPTIONS"]
    }
  ]
} 

再次運行部署即可

...

# 錯誤:此無伺服器函數已崩潰

Deploying NestJS Application using Vercel and Supabase

就我而言,這是因為找不到模組錯誤

Deploying NestJS Application using Vercel and Supabase

...
有幾種方法可以解決這個問題:

方法1(用相對路徑替換所有導入)


import { UsersService } from 'src/users/users.service';


import { UsersService } from '../users/users.service';

...

方法 2(修改 vercel.json 檔案和 .gitignore 檔案)

我最終採用了這種方法,因為我不需要將我的應用程式限制為僅使用相對路徑導入。

所以,將vercel.json修改為這個

{
  "version": 2,

  "builds": [
    {
      "src": "dist/main.js",
      "use": "@vercel/node"
    }
  ],
  "routes": [
    {
      "src": "/(.*)",
      "dest": "dist/main.js",
      "methods": ["GET", "POST", "PUT", "DELETE", "PATCH", "OPTIONS"]
    }
  ]
}

前往您的 .gitignore 檔案並刪除 /dist.

運行新部署即可。

編碼愉快! ?

版本聲明 本文轉載於:https://dev.to/abayomijohn273/deploying-nestjs-application-using-vercel-and-supabase-3n7m?1如有侵犯,請聯絡[email protected]刪除
最新教學 更多>
  • 如何在 PHP 中組合兩個關聯數組,同時保留唯一 ID 並處理重複名稱?
    如何在 PHP 中組合兩個關聯數組,同時保留唯一 ID 並處理重複名稱?
    在 PHP 中組合關聯數組在 PHP 中,將兩個關聯數組組合成一個數組是常見任務。考慮以下請求:問題描述:提供的代碼定義了兩個關聯數組,$array1 和 $array2。目標是建立一個新陣列 $array3,它合併兩個陣列中的所有鍵值對。 此外,提供的陣列具有唯一的 ID,而名稱可能重疊。要求是建...
    程式設計 發佈於2024-11-19
  • 如何在Python中取得檔案的絕對路徑?
    如何在Python中取得檔案的絕對路徑?
    在 Python 中確定絕對文件路徑作為程式設計師,確定文件的絕對路徑通常是至關重要的。絕對路徑提供檔案的完整位址,包括其磁碟機、目錄和檔案名稱。在 Python 中,取得絕對路徑非常簡單,並且跨平台保持一致。 為了檢索給定檔案的絕對路徑,Python 提供了 os.path.abspath() 函...
    程式設計 發佈於2024-11-19
  • 如何使用 Joda Time 將日期字串轉換為 DateTime 物件?
    如何使用 Joda Time 將日期字串轉換為 DateTime 物件?
    使用Joda Time 將日期字串轉換為DateTime 物件嘗試轉換類似「04/02/2011 20:27」的日期字串時:05" 使用new DateTime("04/02/2011 20:27:05") 到DateTime 對象,由於格式不匹配,可能會出現錯誤。為了...
    程式設計 發佈於2024-11-19
  • 如何在 PHP 中將多維數組展平為一維數組?
    如何在 PHP 中將多維數組展平為一維數組?
    將多維數組轉換為一維數組:PHP 解決方案在PHP 中,遇到包含單元素數組的數組可以進行轉換當旨在獲得一維等價物時面臨挑戰。為了解決這種情況,讓我們探討如何使用內建 PHP 功能有效地展平此類陣列。 1。 array_map('current', $array):對於具有單元素子數組...
    程式設計 發佈於2024-11-19
  • 如何在沒有反向引用的情況下匹配 Go 中的重複字元?
    如何在沒有反向引用的情況下匹配 Go 中的重複字元?
    如何在 Go 中使用正規表示式來匹配任意重複字元? 在本文中,我們將解決匹配任意重複字元的挑戰在 Go 中使用正規表示式重複兩次。在其他正規表示式語法(例如 JavaScript)中,此任務通常很簡單,其中可以簡單地使用反向引用來匹配重複字元。然而,Go 的原生正規表示式引擎 (re2) 不支援反向...
    程式設計 發佈於2024-11-19
  • 如何偵錯 PDO 查詢錯誤:我們可以重建「最終」查詢嗎?
    如何偵錯 PDO 查詢錯誤:我們可以重建「最終」查詢嗎?
    如何深入探究PDO 查詢錯誤的奧秘傳統的PHP 連接SQL 查詢允許透過手動查詢輕鬆進行語法錯誤調試執行時,準備好的PDO 語句的出現帶來了一個獨特的挑戰:缺乏可見的「最終」查詢字串。當資料庫語法錯誤發生時,這可能會讓開發人員摸不著頭腦。 Is the Eluding Query Beyond Gr...
    程式設計 發佈於2024-11-19
  • 用於提升資料庫效能的頂級 ySQL 架構檢查
    用於提升資料庫效能的頂級 ySQL 架構檢查
    A database schema defines the logical structure of your database, including tables, columns, relationships, indexes, and constraints that shape how da...
    程式設計 發佈於2024-11-19
  • Bootstrap 4 Beta 中的列偏移發生了什麼事?
    Bootstrap 4 Beta 中的列偏移發生了什麼事?
    Bootstrap 4 Beta:列偏移的刪除和恢復Bootstrap 4 在其Beta 1 版本中引入了重大更改柱子偏移了。然而,隨著 Beta 2 的後續發布,這些變化已經逆轉。 從 offset-md-* 到 ml-auto在 Bootstrap 4 Beta 1 中, offset-md-*...
    程式設計 發佈於2024-11-19
  • 如何修復 MySQL Server 8.0 中的 PASSWORD 函數問題:語法指南
    如何修復 MySQL Server 8.0 中的 PASSWORD 函數問題:語法指南
    解決MySQL Server 8.0 中的PASSWORD 函數問題嘗試在MySQL Server 版本8.0.12 中執行PASSWORD 函數時,某些情況可能會發生觸發錯誤。本文旨在解決此類問題並提供可行的解決方案。 錯誤代碼1064如果您遇到錯誤“Error Code: 1064. You h...
    程式設計 發佈於2024-11-19
  • 如何解決 Mac OS X 10.10 上的 GOPATH 配置問題?
    如何解決 Mac OS X 10.10 上的 GOPATH 配置問題?
    Mac OS X 10.10 上的GOPATH 配置疑難排解在Mac OS X 10.10 上設定Go 開發時,使用者可能會遇到與GOPATH 相關的問題配置。本文提供了解決這些問題和建立正確環境變數的指導。 設定 GOROOT 和 PATHGOROOT 應該指向 Go 的安裝目錄,而不是本身可執行...
    程式設計 發佈於2024-11-19
  • 在具有共享字段的結構上實現相同的方法時如何避免程式碼重複?
    在具有共享字段的結構上實現相同的方法時如何避免程式碼重複?
    在具有相同字段的結構體中使用通用函數的最佳實踐在兩個結構體擁有相同字段的情況下,最好防止定義對這些欄位進行操作的方法時會出現程式碼重複。 自訂類型作為方法接收器建議的方法是引入一個自訂類型(例如,Version)來服務作為方法接收者。由於所有自訂類型都可以用作方法接收器,因此此技術可以建立可應用於多...
    程式設計 發佈於2024-11-19
  • 如何在 Go 的 VSCode 調試模式下查看完整變數值?
    如何在 Go 的 VSCode 調試模式下查看完整變數值?
    揭開VSCode 調試模式中的隱藏值在深入研究Go 中調試的複雜性時,您可能會遇到長的令人沮喪的截斷變數值。令人惱火的“... # more”後綴掩蓋了這些值的全部範圍,讓您對它們的真實本質一無所知。 不用擔心,因為有一個隱藏的補救措施可以解決這個困境!關鍵在於透過 VSCode 中的「settin...
    程式設計 發佈於2024-11-19
  • 為什麼我的 PHP 腳本會在 Gmail 中傳送帶有「noname」附件的空白 HTML 電子郵件?
    為什麼我的 PHP 腳本會在 Gmail 中傳送帶有「noname」附件的空白 HTML 電子郵件?
    使用PHP 發送HTML 電子郵件:解決空白電子郵件和附件問題您遇到的問題是PHP 腳本發送帶有空“的空白HTML 電子郵件Gmail 中的「noname」附件。方案是使用PHPMailer 類別。 PHPMailer 的好處: 簡化的HTML 電子郵件發送: PHPMailer 提供了一個用戶友好...
    程式設計 發佈於2024-11-19
  • 大批
    大批
    方法是可以在物件上呼叫的 fns 數組是對象,因此它們在 JS 中也有方法。 slice(begin):將陣列的一部分提取到新數組中,而不改變原始數組。 let arr = ['a','b','c','d','e']; // Usecase: Extract till index ...
    程式設計 發佈於2024-11-19
  • PHP5 中的內聯字串和連接之間有顯著的效能差異嗎?
    PHP5 中的內聯字串和連接之間有顯著的效能差異嗎?
    效能比較:PHP5 中的內聯字串與連線在PHP5 處理文字資料時,開發人員可以選擇使用內聯字串(例如,「這些是一些單字」)或執行串聯操作(例如,「這些是」.$foo)。這就提出了一個問題:這些方法之間是否存在顯著的效能差異。 內聯字串與大括號封閉變數在PHP5 的上下文中,有使用內聯字串(情況1)和...
    程式設計 發佈於2024-11-19

免責聲明: 提供的所有資源部分來自互聯網,如果有侵犯您的版權或其他權益,請說明詳細緣由並提供版權或權益證明然後發到郵箱:[email protected] 我們會在第一時間內為您處理。

Copyright© 2022 湘ICP备2022001581号-3