在开始安装之前,请确保您的系统已安装:
Node.js (版本 >= 14.x)
node --version # 检查版本
MySQL (版本 >= 5.7)
mysql --version # 检查版本
npm 或 yarn
npm --version # 检查版本
确认您在项目目录中:
cd /Users/ly/CodeBuddy/20260114134435
npm install
这将安装所有必需的 Node.js 依赖包,包括:
登录 MySQL:
mysql -u root -p
创建数据库(可选,初始化脚本会自动创建):
CREATE DATABASE customer_crm DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
EXIT;
复制环境变量模板:
cp .env.example .env
编辑 .env 文件:
# macOS/Linux
nano .env
# 或使用其他编辑器
vim .env
code .env
修改以下配置:
# 数据库配置(必须修改)
DB_HOST=localhost
DB_PORT=3306
DB_USER=root
DB_PASSWORD=你的MySQL密码
DB_NAME=customer_crm
# JWT密钥(建议修改为随机字符串)
JWT_SECRET=your_jwt_secret_key_change_this_in_production
# 其他配置可保持默认
PORT=3000
DEFAULT_PROTECTION_DAYS=30
MAX_DAILY_LEADS=5
运行初始化脚本:
npm run init-db
此脚本将:
如果看到以下输出,说明初始化成功:
数据库连接成功
数据库 customer_crm 创建成功
用户表创建成功
客户报备表创建成功
...
默认管理员账号创建成功 (用户名: admin, 密码: admin123)
数据库初始化完成!
如果您想要一些测试数据来体验系统:
node scripts/createTestData.js
这将创建:
开发环境(推荐,支持热重载):
npm run dev
生产环境:
npm start
看到以下输出说明启动成功:
==================================================
客户报备管理系统 (Customer Registration CRM)
==================================================
服务器运行在: http://localhost:3000
环境: development
API 文档: http://localhost:3000/api
==================================================
定时任务已启动
- 保护期检查: 每小时执行一次
- 到期提醒: 每天 09:00 执行
打开浏览器访问:
http://localhost:3000
使用默认账号登录:
adminadmin123登录获取 Token:
curl -X POST http://localhost:3000/api/auth/login \
-H "Content-Type: application/json" \
-d '{"username":"admin","password":"admin123"}'
使用 Token 访问 API:
# 替换 YOUR_TOKEN 为上一步获得的 token
curl -X GET http://localhost:3000/api/stats/dashboard \
-H "Authorization: Bearer YOUR_TOKEN"
导入环境变量:
http://localhost:3000token测试登录接口:
/api/auth/login{"username":"admin","password":"admin123"}测试其他接口时,在 Headers 中添加:
AuthorizationBearer {{token}}错误信息:
ER_ACCESS_DENIED_ERROR: Access denied for user 'root'@'localhost'
解决方案:
.env 文件中的数据库密码是否正确mysql.server statusmysql -u root -p错误信息:
Error: listen EADDRINUSE: address already in use :::3000
解决方案:
.env 文件中的 PORT=3000 为其他端口或杀掉占用端口的进程:
# 查找占用端口的进程
lsof -i :3000
# 杀掉进程(替换 PID)
kill -9 PID
解决方案:
清理 npm 缓存:
npm cache clean --force
删除 node_modules 重新安装:
rm -rf node_modules
npm install
使用国内镜像(如果网络慢):
npm config set registry https://registry.npmmirror.com
npm install
解决方案:
确保 MySQL 用户有创建数据库的权限:
GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost';
FLUSH PRIVILEGES;
手动创建数据库后再运行初始化脚本:
CREATE DATABASE customer_crm DEFAULT CHARACTER SET utf8mb4;
安装完成后,您可以:
README.md 了解所有 API 接口node scripts/createTestData.js.env 中的业务配置生产环境部署建议:
使用 PM2 进程管理器:
npm install -g pm2
pm2 start src/server.js --name customer-crm
pm2 save
pm2 startup
使用 Nginx 反向代理
配置 HTTPS 证书
定期备份数据库
设置日志轮转
详细部署指南请参考生产环境文档。
如遇到问题:
.env 配置README.md祝您安装顺利! 🎉