快速开始指南

快速开始指南

本文档将帮助您快速搭建和运行好耐得科技网站项目。

前置要求

  • Node.js 18 或更高版本
  • npm 或 yarn 包管理器
  • 代码编辑器(VS Code 推荐)

安装步骤

1. 安装依赖

npm install

2. 配置环境变量

复制 .env.example.env.local

# Windows
copy .env.example .env.local

编辑 .env.local,配置必要的环境变量:

# API地址(开发环境)
NEXT_PUBLIC_API_URL=http://localhost:3000
NEXT_PUBLIC_SITE_URL=http://localhost:3000

# Session 密钥(用于加密session,请修改为随机字符串)
SESSION_SECRET=your-secret-key-change-this-in-production

# Google reCAPTCHA v3 密钥
# 获取密钥:https://www.google.com/recaptcha/admin
NEXT_PUBLIC_RECAPTCHA_SITE_KEY=your_recaptcha_site_key_here
RECAPTCHA_SECRET_KEY=your_recaptcha_secret_key_here

3. 初始化数据库

# 生成 Prisma Client
npm run prisma:generate

# 创建数据库和表结构
npm run prisma:push

# 导入初始数据(可选)
npx tsx prisma/seed.ts

4. 启动开发服务器

npm run dev

访问:http://localhost:3000


项目概述

技术栈

  • 框架: Next.js 14 (App Router)
  • 语言: TypeScript
  • 样式: TailwindCSS
  • 图标: Lucide React
  • 数据库: Prisma + SQLite
  • 认证: Session + bcrypt
  • 富文本: React Quill
  • 图片处理: Sharp

项目结构

hndqc/
├── src/
   ├── app/                    # Next.js App Router页面
      ├── (public)/          # 公开页面
         ├── page.tsx       # 首页
         ├── about/         # 关于我们
         ├── products/      # 产品介绍
         ├── news/          # 新闻动态
         ├── careers/       # 招贤纳士
         └── contact/       # 联系我们
      ├── login/             # 登录页面
      └── admin/            # 后台管理(需认证)
          ├── layout.tsx     # 后台布局
          ├── page.tsx       # 仪表盘
          ├── news/          # 新闻管理
          ├── products/      # 产品管理
          ├── jobs/          # 招聘管理
          ├── users/         # 用户管理
          ├── categories/    # 分类管理
          ├── pages/         # 页面管理
          ├── company/       # 公司信息
          ├── settings/      # 站点设置
          └── cache/         # 缓存管理
   ├── api/                  # API 路由
      ├── auth/           # 认证API
      ├── news/           # 新闻API
      ├── products/       # 产品API
      ├── jobs/           # 招聘API
      ├── users/          # 用户API
      ├── categories/     # 分类API
      ├── pages/          # 页面API
      ├── company/        # 公司信息API
      ├── settings/       # 设置API
      ├── upload/         # 图片上传API
      └── cache/          # 缓存API
   ├── components/            # React组件
      ├── admin/          # 后台组件
         ├── RichTextEditor.tsx
         ├── ImageUpload.tsx
         └── Delete*.tsx
      ├── Header.tsx       # 网站头部
      └── Footer.tsx       # 网站页脚
   └── lib/                   # 工具函数
       ├── prisma.ts       # Prisma客户端
       ├── auth.ts         # 认证函数
       ├── validations.ts  # Zod验证schemas
       └── sanitize.ts     # HTML清洗
├── public/                    # 静态资源
   ├── logo.png
   └── uploads/          # 上传的图片
├── prisma/
   ├── schema.prisma       # 数据库模型
   ├── seed.ts            # 初始数据
   └── dev.db             # SQLite数据库(自动生成)
├── tailwind.config.ts         # TailwindCSS配置
├── tsconfig.json              # TypeScript配置
├── next.config.js             # Next.js配置
└── package.json               # 项目依赖

快速命令

# 开发
npm run dev                # 启动开发服务器(http://localhost:3000)

# 构建
npm run build              # 构建生产版本
npm start                   # 启动生产服务器(端口3001)

# 数据库
npm run prisma:generate    # 生成Prisma客户端
npm run prisma:push        # 推送schema到数据库
npm run prisma:studio      # 打开数据库可视化工具
npx tsx prisma/seed.ts    # 导入初始数据

# 代码质量
npm run lint               # 运行ESLint检查

访问地址

前台网站

  • 首页: http://localhost:3000
  • 产品: http://localhost:3000/products
  • 新闻: http://localhost:3000/news
  • 招聘: http://localhost:3000/careers
  • 关于我们: http://localhost:3000/about
  • 联系我们: http://localhost:3000/contact

后台管理

  • 登录页: http://localhost:3000/login
  • 仪表盘: http://localhost:3000/admin
  • 默认账号: admin / admin123

API端点

  • 新闻: http://localhost:3000/api/news
  • 产品: http://localhost:3000/api/products
  • 招聘: http://localhost:3000/api/jobs
  • 分类: http://localhost:3000/api/categories
  • 用户: http://localhost:3000/api/users
  • 设置: http://localhost:3000/api/settings
  • 公司信息: http://localhost:3000/api/company

数据库模型

主要表

  1. User - 用户表
  2. 用户名、密码(bcrypt加密)
  3. 姓名、角色、状态

  4. News - 新闻表

  5. 标题、内容(HTML)、摘要
  6. 分类、图片URL
  7. 发布状态

  8. Product - 产品表

  9. 名称、描述、详情
  10. 分类、图片
  11. 特性、规格、应用场景
  12. 发布状态、排序

  13. JobPosition - 招聘职位表

  14. 职位名称、部门、地点
  15. 薪资、描述、要求
  16. 发布状态、排序

  17. Category - 分类表

  18. 名称、类型(news/product)
  19. 排序

  20. Page - 页面内容表

  21. slug、标题、内容

  22. CompanyInfo - 公司信息表

  23. 名称、描述、联系方式

  24. SiteSetting - 站点设置表

  25. key-value配置

默认账号

用户名: admin
密码: admin123

重要: 首次登录后请立即修改密码!


常见问题

Q1: 安装依赖时报错?

A: 尝试以下步骤: 1. 删除 node_modules 文件夹 2. 删除 package-lock.json 3. 重新运行 npm install

Q2: 数据库初始化失败?

A: 1. 确认运行了 npm run prisma:generate 2. 检查 prisma/schema.prisma 是否存在 3. 删除 prisma/dev.db 重新运行

Q3: 登录后台提示失败?

A: 1. 确认使用正确的账号密码 2. 检查 reCAPTCHA 密钥是否配置 3. 如果在中国部署,考虑使用替代方案(见中国部署指南)

Q4: 图片上传失败?

A: 1. 检查文件大小是否超过5MB 2. 确认 /public/uploads 目录存在 3. 查看浏览器控制台错误信息

Q5: 页面不显示数据?

A: 1. 确认内容已设置为"已发布"状态 2. 清除浏览器缓存(Ctrl+Shift+R) 3. 检查 API 是否正常响应


下一步

安装完成后,建议查看以下文档:

  1. 后台管理完整指南 - 详细的后台功能说明
  2. 部署指南 - 如何部署到生产环境
  3. 中国部署指南 - 中国特殊网络环境部署注意事项

祝开发顺利!🚀

评论 (1)

请先 登录 后再参与评论
Avatar
test 2026-04-14 11:16
  • 测试评论
A
admin 管理员 2026-04-14 11:17

测试回复

Avatar
test 2026-04-14 13:04

测试再次回复