- Add goals feature (models, migrations, API, web pages) - Add reserved/centralized wallet balance service - Add wallet detail page and overview components - Add new UI components (progress, multi-select, FAB) - Remove stray empty -H/-d files from working tree
3.7 KiB
Executable File
3.7 KiB
Executable File
Goals Feature - Troubleshooting
❌ Error: "Cannot POST /api/goals"
Cause:
The backend server needs to be restarted to load the new Goals module.
Solution:
Step 1: Stop the backend server
# In the terminal running the API
# Press Ctrl+C to stop
Step 2: Restart the backend
cd apps/api
npm run dev
Step 3: Verify the server started correctly Look for these messages:
[Nest] INFO [NestFactory] Starting Nest application...
[Nest] INFO [InstanceLoader] GoalsModule dependencies initialized
[Nest] INFO [RoutesResolver] GoalsController {/api/goals}:
[Nest] INFO [RouterExplorer] Mapped {/api/goals, POST} route
[Nest] INFO [RouterExplorer] Mapped {/api/goals, GET} route
[Nest] INFO [RouterExplorer] Mapped {/api/goals/stats, GET} route
[Nest] INFO [RouterExplorer] Mapped {/api/goals/:id, GET} route
[Nest] INFO [RouterExplorer] Mapped {/api/goals/:id, PATCH} route
[Nest] INFO [RouterExplorer] Mapped {/api/goals/:id, DELETE} route
[Nest] INFO [RouterExplorer] Mapped {/api/goals/:id/allocations, POST} route
[Nest] INFO [RouterExplorer] Mapped {/api/goals/:id/allocations/:allocationId, DELETE} route
Step 4: Test the endpoint
# In a new terminal, test if the endpoint exists:
curl -X GET http://localhost:3001/api/goals \
-H "Authorization: Bearer YOUR_TOKEN"
# Should return: 401 Unauthorized (if no token) or [] (empty array if authenticated)
# Should NOT return: 404 Not Found or "Cannot POST /api/goals"
✅ Verification Checklist
After restarting the backend:
- Backend server running on port 3001
- Console shows "GoalsModule dependencies initialized"
- Console shows "GoalsController {/api/goals}" routes
- Frontend can create goals without "Cannot POST" error
- Goals appear in the dashboard
🔍 Additional Checks
Check 1: Module is registered
File: apps/api/src/app.module.ts
imports: [
// ... other modules
GoalsModule, // ← Should be here
],
Check 2: Controller is exported
File: apps/api/src/goals/goals.module.ts
@Module({
imports: [PrismaModule],
controllers: [GoalsController], // ← Should be here
providers: [GoalsService],
exports: [GoalsService],
})
Check 3: Database migration ran
cd apps/api
npx prisma migrate status
# Should show:
# ✓ 20251022141924_add_goals_feature
🐛 Common Issues
Issue: Module not found
Error: Cannot find module './goals/goals.module'
Fix: Make sure all files were created correctly
Issue: Prisma client not updated
Error: Property 'goal' does not exist on type 'PrismaClient'
Fix:
cd apps/api
npx prisma generate
npm run build
Issue: Port already in use
Error: Error: listen EADDRINUSE: address already in use :::3001
Fix:
# Find and kill the process using port 3001
lsof -ti:3001 | xargs kill -9
# Then restart
npm run dev
📞 Quick Test
Once backend is restarted, test in browser console:
// Open browser console (F12)
// Make sure you're logged in
fetch('http://localhost:3001/api/goals', {
method: 'GET',
headers: {
'Authorization': `Bearer ${localStorage.getItem('token')}`
}
})
.then(r => r.json())
.then(console.log)
// Should return: []
// Should NOT return: 404 or "Cannot GET /api/goals"
✅ Success Indicators
You'll know it's working when:
- ✅ Backend console shows Goals routes mapped
- ✅ No "Cannot POST /api/goals" error
- ✅ Create goal dialog submits successfully
- ✅ Goals appear in the dashboard
- ✅ Stats cards show correct numbers
TL;DR: Restart the backend server! 🔄