Node-Express后台应用开发过程记录
快速部署express项目(简单版)
程序版本
- 操作系统 CentOS7
- mysql 5.7.44
- nvm 0.38.0
- node v22.11.0
Express服务器搭建
使用Express应用程序生成器快速创建应用骨架:
1 | npx express-generator |
安装依赖:
1 | npm install |
安装nodemon支持热加载:
1 | npm i -g nodemon |
修改package.json中的scripts的start脚本:
1 | { |
nodemon通过监听项目根目录下的文件变动,自动重启项目
修改服务的默认端口(3000):
1 | // app.js |
express连接mysql数据库
在根目录下创建dataBase文件夹:
- dataBase
- api.js 查询数据库接口
- config.js 数据库配置文件
- db.js 数据库连接文件
1 | module.exports = { |
1 | // 连接数据库 |
1 | const connection = require('./db') |
服务器配置MySql
常用命令:
1 | 开启mysql服务 |
还没有账号和密码时,可以在my.cnf中配置跳过密码:
1 | #... |
修改过my.cnf文件之后,需要重启mysql服务:
1 | service mysqld restart |
修改Mysql密码
参考博客:
需要使用mysql命令行进行修改,
进入mysql数据库:
1 | use mysql; |
查询表修改密码:
1 | alter user 'root'@'localhost' identified by 'NewPassword'; |
最后一定要刷新一下mysql:
1 | flush privileges; |
服务器配置git
参考博客:
安装git命令:
1 | yum -y install git |
设置git全局用户名、邮箱地址、密码:
1 | git config --global user.name "xxx" |
express服务建库提交,考虑到国内网络,选用的是gitee仓库,
遇到问题:每次git pull都需要我重新输入用户名和密码,
使用命令存储认证信息:
1 | git config --global credential.helper store |
服务器配置NVM
到了坑最多的一步
安装nvm:
1 | curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.35.3/install.sh | bash |
安装指定版本的node:
1 | nvm install v22.11.0 |
node运行报错问题
参考博客:
- 升级gcc
- CentOS7升级GCC版本,解决version `GLIBCXX_3.4.21‘ not found
- 解决nvm升级node v18.14.0时/lib64/libm.so.6: version ‘GLIBC_2.27’ not found (required by node)问题
查看node版本:
1 | node -v |
这时出现报错:
1 | -bash-4.2# node -v |
大概意思就是缺少对应版本的几个lib64下的文件,需要手动安装一下,
主要解决方案见参考博客(花很长时间解决好烦)
Nginx托管服务
运行Node项目
把代码库拉下来,npm i安装依赖之后,
使用pm2进行服务托管:
1 | 全局安装pm2 |
在服务器上开放对应的服务端口
Nginx代理配置
1 | server { |
其它
Express获取请求IP地址
需要借助库:IP2Region
1 | npm i ip2region |
引入并使用ip2region:
1 | const IP2Region = require('ip2region').default; |
nginx需要修改header配置:
1 | server { |
Nodejs连接数据库频繁掉线
问题描述
使用Nodejs连接Mysql时频繁掉线,
报错:PROTOCOL_ENQUEUE_AFTER_FATAL_ERROR