# 快速開始
## 單文件方式
單文件版本可以快速啟動 Orange 框架構建一個簡單的 http 服務,
第一步:在 GOPATH 目錄下創建一個目錄 demo,并在目錄中創建一個 main.go,寫入代碼:
~~~
package main
import "gitee.com/zhucheer/orange/app"
func main(){
router := &Route{}
app.AppStart(router)
}
type Route struct {
}
func (s *Route) ServeMux() {
app.NewRouter("").GET("/", func(ctx *app.Context) error {
return ctx.ToString("Hello world!")
})
}
func (s *Route) Register() {
}
~~~
第二步:安裝依賴
如果 go 版本小于 1.13
```
window 下在 cmd 中執行:
set GO111MODULE=on
set GOPROXY=https://goproxy.cn
linux 下執行:
export GO111MODULE=on
export GOPROXY=https://goproxy.cn
```
如果 go 版本大于等于 1.13
```
go env -w GOPROXY=https://goproxy.cn,direct
```
然后在項目目錄下面執行命令
> go mod init // 初始化go mod 包管理
> go mod tidy // 加載依賴包
> go mod vendor // 將依賴包拷貝到項目目錄中去
> go run main.go
以該方式啟動僅作為演示或調試時使用,如果需要利用 Orange 構建一個 Web 服務產品,還請使用腳手架方式構建項目;
*****
## 腳手架方式
通過腳手架方式安裝 Orange 可以生成一個完整的 mvc 目錄結構,通過該方式可以構建一個完整的 http 服務項目。
### 安裝
> 下載項目
`go get gitee.com/zhucheer/orange
`
### 創建一個新項目
```
> orange create project // 命令執行后將會在GOPATH/src目錄下生成項目
```
如果出現 orange 命令不存報錯在則需要將 GOBIN 添加到環境變量。
### 啟動項目
- 通過 go mod 管理相關依賴, 如果 go 版本小于 1.12 需要手動開啟 go mod 功能;
```
window 下在 cmd 中執行:set GO111MODULE=on
linux 下執行:export GO111MODULE=on
```
- go1.13版本環境通過配置env開啟 go mod ,還需要添加代理配置;
```
//開啟go mod
go env -w GO111MODULE="on"
// 添加國內代理
go env -w GOPROXY=https://goproxy.cn,direct
```
- 進入項目目錄后依次執行下面的命令
> go mod init // 初始化go mod 包管理
> go mod tidy // 加載依賴包
> go mod vendor // 將依賴包拷貝到項目目錄中去
> go run main.go [--config=config/config.toml] //啟動項目 默認配置參數可以忽略,如配置文件位置改變可通過參數指定。
### 打包項目
> 配置好GOBIN環境變量,進入項目目錄,然后執行如下命令:
> window: `orange.exe build`
> linux:`orange build`
> 打包命令默認會將程序打包到 build 目錄下,打包好的程序可以直接運行,不依賴 golang 環境。