nestjs
部署相对于普通接口来说需要指定配置,根据项目实际路径相应调整即可:
JSON
{
"builds": [
{
"src": "src/main.ts",
"use": "@vercel/node"
}
],
"routes": [
{
"src": "/(.*)",
"dest": "src/main.ts",
"methods": ["GET", "POST", "PUT", "DELETE"]
}
]
}
指的注意的是,vercel 的部署是无状态的,个人理解就是,每次访问部署的地址时,都会临时开辟一块区域给当前请求使用
一旦本次访问结束,该区域将被回收,与之关联的任何文件及数据都会被清理
举个栗子:
javascript
// /src/main.ts
// 在内存中定义一个变量,定时去新增内容
// 但是每次访问时,arr 都会被初始化,并在此次访问结束后被清空
const arr = []
setTimeout(() => {
arr.push(1)
}, 1000)
基于这个特点,vervel 如果是部署服务,也只能做一些工具类的接口,无法实现持久化存储
哪怕是永远不重新部署服务,在内存中存数据都是做不到的,如果有这方便的需求,需要搭配第三方的服务去实现,例如远程数据库,静态资源存储等
另外在 vercel
环境下,是有一个临时目录 /temp
可以进行读写的,
但是同样的,任何在该目录下读写的文件,在本次访问结束后,也都会被清空,因此也只能临时使用
0