Skip to content

Commit 48581f3

Browse files
committed
update go web example
1 parent 07d00ee commit 48581f3

File tree

6 files changed

+53
-8
lines changed

6 files changed

+53
-8
lines changed

goweb/go.mod

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
module goweb
1+
module example/goweb

goweb/hello.txt

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
2+
123
3+
12312

goweb/handlers.go renamed to goweb/main.go

Lines changed: 19 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -5,15 +5,17 @@ import (
55
"fmt"
66
"html/template"
77
"io/ioutil"
8+
"log"
89
"net/http"
910
"regexp"
1011
)
1112

13+
// 用法, 输入 http://localhost:18080/view/hello, 出现hello为title的页面编辑
1214
func main() {
1315
http.HandleFunc("/view/", viewHandler)
1416
http.HandleFunc("/edit/", editHandler)
1517
http.HandleFunc("/save/", saveHandler)
16-
http.ListenAndServe(":18080", nil)
18+
log.Fatal(http.ListenAndServe(":18080", nil))
1719
}
1820

1921
type Page struct {
@@ -52,7 +54,11 @@ func handler(w http.ResponseWriter, r *http.Request) {
5254
}
5355

5456
func viewHandler(w http.ResponseWriter, r *http.Request) {
55-
title, _ := getTitle(w, r)
57+
title, err := getTitle(w, r)
58+
if err != nil {
59+
http.Error(w, err.Error(), http.StatusInternalServerError)
60+
return
61+
}
5662
p, err := loadPage(title)
5763
if err != nil {
5864
http.Redirect(w, r, "/edit/"+title, http.StatusFound)
@@ -62,7 +68,11 @@ func viewHandler(w http.ResponseWriter, r *http.Request) {
6268
}
6369

6470
func editHandler(w http.ResponseWriter, r *http.Request) {
65-
title, _ := getTitle(w, r)
71+
title, err := getTitle(w, r)
72+
if err != nil {
73+
http.Error(w, err.Error(), http.StatusInternalServerError)
74+
return
75+
}
6676
p, err := loadPage(title)
6777
if err != nil {
6878
p = &Page{Title: title}
@@ -71,10 +81,14 @@ func editHandler(w http.ResponseWriter, r *http.Request) {
7181
}
7282

7383
func saveHandler(w http.ResponseWriter, r *http.Request) {
74-
title, _ := getTitle(w, r)
84+
title, err := getTitle(w, r)
85+
if err != nil {
86+
http.Error(w, err.Error(), http.StatusInternalServerError)
87+
return
88+
}
7589
body := r.FormValue("body")
7690
p := &Page{Title: title, Body: []byte(body)}
77-
err := p.savePage()
91+
err = p.savePage()
7892
if err != nil {
7993
http.Error(w, err.Error(), http.StatusInternalServerError)
8094
return

goweb/util.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
package main

goweb/util_test.go

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
package main
2+
3+
import (
4+
"fmt"
5+
"testing"
6+
)
7+
8+
func TestHello(t *testing.T) {
9+
ints := []int{1, 2, 4}
10+
for k, v := range ints {
11+
fmt.Println(&k, &v)
12+
}
13+
14+
for k, v := range ints[:] {
15+
fmt.Println(&k, &v)
16+
}
17+
18+
for i := 0; i < len(ints); i++ {
19+
fmt.Println(&ints[i])
20+
}
21+
22+
ages := map[string]int{"张三": 15, "李四": 20, "王武": 36}
23+
24+
for name, age := range ages {
25+
fmt.Println(&name, &age)
26+
}
27+
}

goweb/view.html

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
<h1> {{.Title}} </h1>
22

3-
<p> [<a href="/edit/{{.Title}}">edit</a>] </p>
3+
<div> body is: {{printf "%s" .Body}} </div>
44

5-
<div> {{printf "%s" .Body}} </div>
5+
<p> [<a href="/edit/{{.Title}}">edit</a>] </p>

0 commit comments

Comments
 (0)
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy