Imersão Fullcycle 15 - Codepix 项目教程

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-gocodepix-node 两个子目录,分别对应 Go 和 Node.js 的启动文件。
  • config/: 存放项目的配置文件,包括 Go 和 Node.js 的配置文件。
  • internal/: 存放项目的内部逻辑代码,分为 servicerepository 两个子目录,分别存放服务层和数据层的代码。
  • pkg/: 存放项目的公共包,包括 grpcutils 两个子目录,分别存放 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 项目的目录结构、启动文件和配置文件的详细介绍。希望这份文档能帮助你更好地理解和使用该项目。

imersao15项目地址:https://gitcode.com/gh_mirrors/im/imersao15

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

杨元诚Seymour

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值