Imersão Fullcycle 15 - Codepix 项目教程
imersao15项目地址:https://gitcode.com/gh_mirrors/im/imersao15
1. 项目的目录结构及介绍
imersao15/
├── cmd/
│ ├── codepix-go/
│ │ └── main.go
│ └── codepix-node/
│ └── main.js
├── config/
│ ├── config.go
│ └── config.js
├── internal/
│ ├── service/
│ │ └── service.go
│ └── repository/
│ └── repository.go
├── pkg/
│ ├── grpc/
│ │ └── grpc.go
│ └── utils/
│ └── utils.go
├── .env
├── Dockerfile
├── README.md
└── go.mod
目录结构介绍
- cmd/: 存放项目的启动文件,分为
codepix-go
和codepix-node
两个子目录,分别对应 Go 和 Node.js 的启动文件。 - config/: 存放项目的配置文件,包括 Go 和 Node.js 的配置文件。
- internal/: 存放项目的内部逻辑代码,分为
service
和repository
两个子目录,分别存放服务层和数据层的代码。 - pkg/: 存放项目的公共包,包括
grpc
和utils
两个子目录,分别存放 gRPC 相关代码和工具类代码。 - .env: 环境变量配置文件。
- Dockerfile: Docker 构建文件。
- README.md: 项目说明文档。
- go.mod: Go 模块依赖管理文件。
2. 项目的启动文件介绍
Go 启动文件
路径: cmd/codepix-go/main.go
package main
import (
"fmt"
"log"
"os"
"github.com/devfullcycle/imersao15/config"
"github.com/devfullcycle/imersao15/internal/service"
)
func main() {
cfg, err := config.LoadConfig()
if err != nil {
log.Fatalf("无法加载配置: %v", err)
}
svc := service.NewService(cfg)
if err := svc.Start(); err != nil {
log.Fatalf("服务启动失败: %v", err)
}
fmt.Println("服务已启动")
}
Node.js 启动文件
路径: cmd/codepix-node/main.js
const config = require('../../config/config.js');
const service = require('../../internal/service/service.js');
async function main() {
try {
const cfg = await config.loadConfig();
const svc = new service.Service(cfg);
await svc.start();
console.log('服务已启动');
} catch (err) {
console.error('服务启动失败:', err);
}
}
main();
3. 项目的配置文件介绍
Go 配置文件
路径: config/config.go
package config
import (
"os"
"github.com/joho/godotenv"
)
type Config struct {
DBHost string
DBPort string
DBUser string
DBPassword string
DBName string
}
func LoadConfig() (*Config, error) {
if err := godotenv.Load(); err != nil {
return nil, err
}
return &Config{
DBHost: os.Getenv("DB_HOST"),
DBPort: os.Getenv("DB_PORT"),
DBUser: os.Getenv("DB_USER"),
DBPassword: os.Getenv("DB_PASSWORD"),
DBName: os.Getenv("DB_NAME"),
}, nil
}
Node.js 配置文件
路径: config/config.js
const dotenv = require('dotenv');
function loadConfig() {
dotenv.config();
return {
DBHost: process.env.DB_HOST,
DBPort: process.env.DB_PORT,
DBUser: process.env.DB_USER,
DBPassword: process.env.DB_PASSWORD,
DBName: process.env.DB_NAME,
};
}
module.exports = { loadConfig };
环境变量配置文件
路径: .env
DB_HOST=localhost
DB_PORT=5432
DB_USER=user
DB_PASSWORD=password
DB_NAME=codepix
以上是 Imersão Fullcycle 15 - Codepix
项目的目录结构、启动文件和配置文件的详细介绍。希望这份文档能帮助你更好地理解和使用该项目。