上次发的实战本来是说搞完整的整套流程的,由于中间花了些时间,最终还是只在本地前后端加数据库整个跑通了,因为之前讲过服务端部署流程所以那一期就没讲服务端部署了,但是想了想,这次这个加上了前端的部署跟调用,还是应该加上前端部署跟前后端整体跑通才算数,所以
开始
先讲下这次用到的东西:1、一台阿里云服务器实例加一个弹性公网
2、一套nestjs代码+mysql
3、nuxt前端代码
4、WinSCP
代码开发工具用的vscode,插件Database Client连接本地数据库,tongyilingma帮我快速构建前端代码,当然里面的逻辑还是要你自己写的
1、nestjs服务端部署
这个之前讲过,这次用我们的新代码重新部署一遍
1、代码文件上传
还是用WinSCP,几天没用密码忘了,搞半天。。。。
连接远程服务器之后可以看到,还是上次那些文件,注意,WinSCP不会自动保存上次登录站点并且自动保存,所以要注意你这里是不是这种root开头的文件夹,如果是C/D开头的这种看清楚,可能没连上远程服务器,两边都是本地文件夹
还是一样,我们把后端文件拖到nest文件夹内 ,最主要的就是src文件夹跟package.json文件
因为之前有过这个文件夹跟里面的一些文件,直接覆盖的话之前文件夹内比现在多的文件还是会保留,所以我们直接把全部文件跟文件夹删掉,包括dist跟node_modules
注意:删除操作最好去阿里云远程连接服务器删,不要用WinSCP,会很慢
正常来说只有这几个文件跟文件夹是必须的,当然你如果在项目里面建了跟src同级的目录那另算
2、安装依赖
阿里云远程连接,切换到nest目录,安装依赖
3、测试环境打包
先假设我们的项目分三个环境,dev,test,prod
我们部署这个环境就当做test环境吧,运行package.json中写的命令
"build:test": "cross-env NODE_ENV=test nest build NODE_ENV=test",
记得把你config里面test环境变量配置成你这台服务器的,主要是数据库配置
npm run build:test
报错了,看了我之前文章的应该猜到咋回事了,让我们本地试试
本地没问题
看下本地node版本号
再看下服务器上的
记住一点,之前讲过的,nestjs要求node版本号大于等于16,好,我们切到16版本
可以看到这里我们切换到16版本了,但是默认还是使用的14版本,既然我们后面都是使用16+的版本,那我们这里更改一下默认设置(首先你要确认你切换的这个node版本你已经安装了)
nvm alias default 16