广东快速做网站公司新学校网站建设成果
一、上传代码
1、使用git
可以使用Git Clone。使用前,在服务器上也要创建秘钥对。这里的密钥对,是专门用来读取Git仓库的。
 在宝塔上,点击终端。进来后,运行
ssh-keygen
 
还是一路回车,密钥对就建好了。
 
接着用命令查看下,刚才生成的公钥。看到后,老规矩,直接复制一下。
cat ~/.ssh/id_rsa.pub 

然后打开GItHub里自己的仓库,点击:设置,左侧找到部署密钥,再点击新增部署密钥

-  
Title大家可以随便填写一个,只要自己知道是干什么的就行。
 -  
然后把刚才复制的密钥,粘贴到这里。
 -  
部署密钥只能用来克隆Clone和拉取Pull,但是不能用来推送Push代码。所以不要给写入权限。
 -  
最后提交一下

用GitHub的话,会要求用手机上的GitHub App输入验证码。用国内其他仓库的,则没有这一步。 

 现在部署密钥就添加好了,如果用其他 Git 仓库也是类似的添加操作。接着,回到仓库的代码这里。点击Code,确认当前选择的是SSH,复制一下地址。
 
 再回到宝塔里,点击文件,确保现在所在的位置是:/www/wwwroot。这个路径是专门用来存放项目的位置,然后点击终端
 
 注意,如果出现宝塔终端提示无法自动认证,这是自己生成的密钥与宝塔终端的密钥互相冲突导致的,按以下步骤操作:
- 点击文件,进入/root/.ssh目录,删掉所有密钥。
 - 重新点击宝塔终端,就可以进去了。
 - 再次回到/root/.ssh目录,会发现宝塔终端自己生成了新的密钥。
 - 为了避免冲突,直接将此密钥传到Git即可,就不要自己生成密钥了。
 
里面输入
git clone 你的仓库地址
 

 这样仓库就克隆下来了。关闭窗口后,刷新一下,就能看到自己的项目了。
 
2、使用宝塔直接上传
另外一种方式,大家可以直接使用宝塔的上传功能。将自己的本地项目打个zip压缩包。上传到服务器后,再解压,这样也是可以的。这种操作非常简单,我们这里就不演示了。
 
3、安装依赖包
接着在宝塔里,点击自己的项目。进入项目目录里后,再次打开终端。运行
npm i
 

4、 修改代码
我们还需要对服务器上的代码做个配置
4.1. 设置环境变量
在项目目录中,找到.env.example,右侧找到更多,选择复制
 
 直接按Ctrl + V,进行粘贴。改为名.env后,点击确认

 双击打开.env后,将环境改为生产环境。
NODE_ENV=production
 
4.2. 设置密钥
还需要设置密钥,大家打开自己电脑上的终端。运行:
node
 
进入交互模式后,依次运行
const crypto = require('crypto');
console.log(crypto.randomBytes(32).toString('hex')); 

复制得到的秘钥,填写到.env文件中的SECRET配置中。
 
 这个秘钥就专供生产环境使用,它不归 Git 仓库管理,更不要告诉其他人了。
4.3. 配置数据库连接
关闭编辑器后,接着点击宝塔左侧的数据库,点击root密码。这里默认已经有一个数据库密码了,大家可以自定义其他的,或者随机生成另一个新的。
 
 我就不改了,直接复制一下。再点击文件,找到数据库配置的config/config.json
 
双击后,将刚复制的密码填写到production里。还有千万不要忘记了,密码要用双引号包裹起来。
 
 接着保存,关闭编辑器。
5. 创建数据库
我们还要需要在服务器上创建数据库。回到项目根目录,位置千万不要搞错,点击终端,运行创建数据库的命令 参考node ORM (sequelize)使用、查询、验证及express 基础框架的搭建及实例的使用
npx sequelize-cli db:create --charset utf8mb4 --collate utf8mb4_general_ci --env production 
第一次运行,会询问是否确认,直接回车。命令后面的--env production,表示要创建的是,生产环境的数据库,也就是clwy_api_production。
 
6. 创建数据表
接着创建数据表,直接运行迁移。同样需要指定是生产环境。
npx sequelize-cli db:migrate --env production 

7. 生成初始数据
还可以用种子文件,生成初始数据。
npx sequelize-cli db:seed:all --env production
 

8.使用 MySQL 客户端,远程管理数据库
全都运行完毕后,关闭终端。我们可以用客户端,连接到服务器上的MySQL,查看一下数据库有没有什么问题。当然,想要导入导出SQL文件,使用客户端也非常方便。
- 新建一个连接

 - 选择 SSH

 - 选择私钥

 - 打开后,已经能访问服务器上的数据库了。
 
9. 总结一下
- 上传代码,推荐使用Git Clone。或者用宝塔面板直接上传,但是不推荐。
 - Linux上的npm包,有可能和Windows上不同。上传到服务器后,需要重新安装。
 - 生产环境,有自己的环境变量、秘钥和数据库配置。
 - 可以使用命令,创建生产环境的数据库、表和数据。
 - 使用MySQL客户端,也可以远程管理服务器上的数据库。
 
