在这个 Next.js 项目中,API 路由应该放置在 app/api/ 目录下。让我详细解释一下:
在 Next.js App Router 中,API 路由遵循以下结构:
app/
├── api/
│ └── chat/
│ └── route.ts ← 这里是 API 端点
├── page.tsx
└── layout.tsxapp/api/ 目录专门用于 API 路由 1路由映射:
app/api/chat/route.ts → /api/chat 端点app/api/users/route.ts → /api/users 端点HTTP 方法:在 route.ts 文件中,你可以导出不同的 HTTP 方法:
export async function GET(req: Request) { ... }
export async function POST(req: Request) { ... }
export async function PUT(req: Request) { ... }在我们的聊天应用中,API 路由已经正确放置在:
app/api/chat/route.ts这个文件包含了处理聊天消息的 POST 方法,使用 AI SDK 和 OpenAI 来生成响应 1。
如果你想添加更多功能,可以创建额外的 API 路由:
app/api/
├── chat/
│ └── route.ts ← 聊天功能
├── auth/
│ └── route.ts ← 用户认证
└── messages/
└── route.ts ← 消息历史这种结构让你的 API 保持组织良好且易于维护。
我来为你创建用户登录和注册的 API 路由。我们将使用 bcrypt 进行密码哈希,JWT 进行身份验证,并创建一个完整的认证系统。
我已经为你创建了完整的用户登录和注册系统!这个系统包含以下功能:
用户注册 (/api/auth/register)
用户登录 (/api/auth/login)
身份验证 (/api/auth/me)
npm install bcryptjs jsonwebtoken @types/bcryptjs @types/jsonwebtoken在 .env.local 文件中添加:
JWT_SECRET=your-super-secret-jwt-key-change-this-in-production
OPENAI_API_KEY=your-openai-api-key现在用户需要先注册或登录才能使用聊天功能,聊天消息会包含用户的身份信息!
To configure the generation, complete these steps: