如何将 go lang 中的后端服务器连接到 angularjs?我知道 angularjs 通过 $http
或 $resource
服务与 go 通信,但是一旦所有数据结构都已创建,go 代码链接的哪一部分与 angular 通信?这是编码/编码的 json 还是我们创建某种路由...
我是一个新手,希望在学习了 angular 之后开始这个项目,但这是我不明白的部分 - angulars $resource
或 的终点是什么$http
服务链接?
最佳答案
创建一个读取 json 字符串的 http 端点,解码它,用它做一些逻辑并将一个 json 字符串写入响应。例如:
func main() {
http.HandleFunc("/api/", apiHandler)
logInfo(fmt.Sprintf("Starting server on port %d", serverPort))
err := http.ListenAndServe(fmt.Sprintf(":%d", serverPort), nil)
if err != nil {
logError(err)
}
}
func apiHandler(w http.ResponseWriter, r *http.Request) {
//ensure its a post
method := r.Method
if method != "POST" {
fail(w, "Invalid http method")
return
}
requestData, err := ioutil.ReadAll(r.Body)
if err != nil {
fail(w, err.Error())
return
}
respData, err := doBusinessLogicWithData(requestData)
if err != nil {
fail(w, err.Error())
return
}
respJSONBytes, err := json.Marshal(respData)
if err != nil {
fail(w, err.Error())
return
}
fmt.Fprintln(w, string(respJSONBytes))
}
func fail(w http.ResponseWriter, message string) {
result := &struct {
Success bool
Message string
}{
Success: false,
Message: message,
}
resultJSONBytes, err := json.Marshal(result)
if err != nil {
logError(err)
fmt.Fprintln(w, "Unable to generate result")
return
}
fmt.Fprintln(w, string(resultJSONBytes))
}
关于angularjs - Golang 连接到 angularjs,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33523032/