以下是使用golang和svelte搭建前後端分離項目的詳細步驟:
1. 下載下傳安裝Golang
在官網下載下傳對應作業系統的安裝包,安裝Golang。
2. 建立項目目錄
在本地建立一個空檔案夾,用于存放項目檔案。
3. 建立後端代碼
在該目錄下建立一個main.go的檔案,用于編寫後端代碼。
```go
package main
import (
"encoding/json"
"log"
"net/http"
)
type Todo struct {
Name string `json:"name"`
Completed bool `json:"completed"`
}
type Todos []Todo
func main() {
http.HandleFunc("/todos", func(w http.ResponseWriter, r *http.Request) {
todos := Todos{
Todo{Name: "Task 1", Completed: false},
Todo{Name: "Task 2", Completed: true},
Todo{Name: "Task 3", Completed: false},
}
json.NewEncoder(w).Encode(todos)
})
log.Fatal(http.ListenAndServe(":8080", nil))
}
```
該代碼會在端口8080啟動一個Web伺服器,當通路/todos路由時,用json格式傳回三個任務的清單。
可以使用以下指令運作該代碼:
```
go run main.go
```
4. 測試後端代碼
在浏覽器中通路 http://localhost:8080/todos,應該能看到任務清單以json格式顯示在頁面上。
5. 建立前端代碼
在該目錄下建立一個名為“client”的檔案夾,在其中建立一個index.html檔案。
```html
<!DOCTYPE html>
<html>
<head>
<title>Todos</title>
</head>
<body>
<ul>
{#each todos as todo}
<li>
{#if todo.completed}
<del>{todo.name}</del>
{:else}
{todo.name}
{/if}
</li>
{/each}
</ul>
<script src="bundle.js"></script>
</body>
</html>
```
6. 建立Svelte應用程式
使用以下指令安裝svelte:
```
npm install -g degit svelte
```
在指令行中導航到項目目錄,并使用以下指令在client檔案夾中建立一個svelte應用程式:
```
npx degit sveltejs/template client
```
該指令會在client檔案夾中建立一個基本的svelte應用程式。
7. 修改svelte應用程式
在client檔案夾中打開src/App.svelte檔案。使用以下代碼替換它:
```html
<script>
let todos = [];
fetch('/todos')
.then(res => res.json())
.then(data => {
todos = data;
});
</script>
<ul>
{#each todos as todo}
<li>
{#if todo.completed}
<del>{todo.name}</del>
{:else}
{todo.name}
{/if}
</li>
{/each}
</ul>
```
該代碼将使用fetch API從Web伺服器擷取待辦事項,并将其存儲在名為todos的變量中。接下來,将使用熟悉的svelte文法建立待辦事項清單。
8. 建構前端應用程式
使用以下指令在client檔案夾中建構前端應用程式:
```
cd client
npm run build
```
該指令将生成一個名為“public”的檔案夾,其中包含所有的建構代碼和資産。
9. 運作項目
傳回項目的根目錄,并使用以下指令啟動Web伺服器:
```
go run main.go
```
在浏覽器中通路 http://localhost:8080,應該能看到任務清單以HTML格式顯示在頁面上。
10. 完成
完成了前後端分離的項目實作,現在可以按照自己的需求進行開發。