Files
language/backend/cmd/server/main.go
T
fish 71a6bc4aa4 新增语言学习后台服务
- 分类管理:支持分类的增删改查
- 单词管理:支持单词的增删改查,包含音标、释义、例句等字段
- 更新 README 项目说明

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-07-16 22:38:09 +08:00

48 lines
909 B
Go

package main
import (
"context"
"log/slog"
"os"
"os/signal"
"syscall"
"github.com/fish/language/backend/internal/app"
"github.com/fish/language/backend/internal/config"
"github.com/fish/language/backend/internal/repository"
)
func main() {
ctx := context.Background()
cfg, err := config.Load()
if err != nil {
slog.Error("failed to load config", "error", err)
os.Exit(1)
}
pool, err := repository.NewPool(ctx, cfg.DatabaseURL)
if err != nil {
slog.Error("failed to connect to database", "error", err)
os.Exit(1)
}
defer pool.Close()
application := app.New(cfg, pool)
go func() {
if err := application.Run(); err != nil {
slog.Error("server error", "error", err)
os.Exit(1)
}
}()
slog.Info("server started", "addr", cfg.HTTPAddr)
quit := make(chan os.Signal, 1)
signal.Notify(quit, syscall.SIGINT, syscall.SIGTERM)
<-quit
slog.Info("shutting down server")
}