Nodejs Nest 部署到 Vercel 的流程有大佬讲一下吗?
我现在的情况是 我单独部署一个未集成数据库的情况下 部署到 vercel 可以正常访问 hello world
但是我集成了数据库以后 我用的 orm 工具无论是 prisma 还是 sequelize 都会没法正常去访问
我的疑惑点在于 vercel 可以去部署 nest+orm 的这种项目吗?
如果可以是我哪里配置的不对呢?
Nodejs Nest 部署到 Vercel 的流程有大佬讲一下吗?
有没有一种可能是 next ?
自评一下,原来还真有 nestjs ,哈哈
前端轮子太多了已经快分不清了。
Next.js 、Nuxt.js 、Nest.js 。
Next React 全栈框架,Nuxt 是 Vue 全栈,Nest 是后端框架。
<br>This Serverless Function has crashed.<br><br>Your connection is working correctly.<br><br>Vercel is working correctly.<br><br>500: INTERNAL_SERVER_ERROR<br>Code: FUNCTION_INVOCATION_FAILED<br>ID: hnd1::npz54-1717550365607-554473530ff7<br>
这是我的 vercel.json<br>{<br> "builds": [<br> {<br> "src": "src/main.ts",<br> "use": "vercel/node"<br> }<br> ],<br> "routes": [<br> {<br> "src": "/(.*)",<br> "dest": "src/main.ts",<br> "methods": ["GET", "POST", "PUT", "DELETE"]<br> }<br> ]<br>}<br><br>
我连我服务器的 mysql 还是 vercel 的 pq 数据库 都可以,,,
我感觉和这个配置没关系把 这个无非也就是类似入口文件的 作用 ?
能详细讲解一下吗?我这边的情况是在我不使用 orm + 数据库的时候是正常的,但是使用以后就会出现上面的报错,我不太确定我部署 nest.js 的时候应该做哪些额外的配置或操作 /(ㄒoㄒ)/~~
这是我 ormconfig 配置
import { TypeOrmModuleOptions } from ‘@nestjs/typeorm’;
const VercelConfig: TypeOrmModuleOptions = {
type: ‘postgres’,
host: ‘ep-aged-waterfall-13013279-pooler.us-east-1.postgres.vercel-storage.com’,
port: 5432,
username: ‘xxx’,
password: ‘xxx’,
database: ‘xxx’,
ssl: { rejectUnauthorized: false }, // For local development, consider removing this in production
synchronize: true, // Automatically create database tables based on entities (set to false in production)
logging: process.env.NODE_ENV === ‘development’ ? true : [‘error’],
entities: [__dirname + ‘/**/*.entity{.ts,.js}’],
};
const MySqlLocalConfig: TypeOrmModuleOptions = {
type: ‘mysql’,
host: ‘xxx’,
port: 3306,
username: ‘root’,
password: ‘xxx’,
database: ‘xxx’,
synchronize: true,
retryDelay: 500,
retryAttempts: 10,
autoLoadEntities: true,
logging: process.env.NODE_ENV === ‘development’ ? true : [‘error’],
};
export { VercelConfig, MySqlLocalConfig };
具体我也不懂 哈哈哈
直接 app.module 就用了 TypeOrmModule.forRoot(MySqlLocalConfig)
然后 再 service 里直接整就完事了
你没有去配置 vercel.json 这些吗?
nestjs 可以用 railway 部署,vercel 主要针对 next.js 的
railway 现在没有免费额度了吧?我好难受 /(ㄒoㄒ)/~~
{
“builds”: [
{
“src”: “src/main.ts”,
“use”: “vercel/node”
}
],
“routes”: [
{ “src”: “/(.*)”, “dest”: “src/main.ts” }
]
}
就这一点 我感觉这个就是个纯入口文件的作用把 和数据库没关系
json<br>{<br> "$schema": "<a target="_blank" href="https://openapi.vercel.sh/vercel.json" rel="nofollow noopener">https://openapi.vercel.sh/vercel.json</a>",<br> "buildCommand": "pnpm build",<br> "installCommand": "pnpm install",<br> "outputDirectory": "packages/web/dist",<br> "builds": [<br> {<br> "src": "package.json",<br> "use": "@vercel/static-build",<br> "config": {<br> "zeroConfig": true,<br> "installCommand": "pnpm install",<br> "buildCommand": "pnpm build",<br> "outputDirectory": "packages/web/dist"<br> }<br> },<br> {<br> "src": "packages/server/src/main.ts",<br> "use": "@vercel/node"<br> }<br> ],<br> "rewrites": [<br> {<br> "source": "api/(.*)",<br> "destination": "packages/server/src/main.ts"<br> }<br> ]<br>}<br>
这是我之前的配置,可以跑 nestjs ,但是原生的 .node 模块我没搞明白怎么配置,后来还是换阿里云了
兄弟你仓库代码能给我看下不,或者给个联系方式具体请教一下你 我现在三个 orm 工具都用了一遍了 都是报错了 /(ㄒoㄒ)/~~
我也是初学者 按照我之前 angular 经验和 chatgpt 搞得 。。。
可能是我的数据库问题吧,我去排查一下吧,谢谢哥们回复了
对啊,一般服务器到你的数据库不能直连,你得配置什么白名单,如果是 aws 的话,还有安全规则
要将Node.js的Nest应用部署到Vercel,可以按照以下步骤进行:
-
项目准备:
- 确保Nest项目在本地可以正常运行。
- 如果项目使用数据库或其他外部服务,请确保这些服务可以从公共网络访问。
-
配置Vercel:
-
在Nest项目根目录下创建
vercel.json
文件,配置如下:{ "version": 2, "builds": [ { "src": "dist/main.js", "use": "@vercel/node" } ], "routes": [ { "src": "/(.*)", "dest": "dist/main.js", "methods": ["GET", "POST", "PUT", "DELETE", "PATCH"] } ] }
-
确保
tsconfig.json
中的编译输出设置正确,指向dist/main.js
。
-
-
部署:
- 全局安装Vercel CLI:
npm install -g vercel
。 - 在项目目录中打开终端,运行
vercel login
登录Vercel账号(可以使用GitHub账号登录)。 - 运行
vercel
命令进行部署,根据提示选择项目名称和代码目录。
- 全局安装Vercel CLI:
-
关联GitHub(可选):
- 将Nest项目上传到GitHub。
- 在Vercel平台上新建项目,选择从GitHub导入,关联对应的Nest项目仓库。
-
访问服务:
- Vercel会默认分配一个临时域名,你可以通过该域名访问已部署的Nest服务。
- 如果有个人域名,可以配置DNS解析后,在Vercel中绑定自定义域名。
这样,你就可以将Node.js的Nest应用成功部署到Vercel了。