angularjs - Golang 连接到 angularjs

标签 angularjs go

如何将 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/

相关文章:

angularjs - 我需要 base href ='/' 吗?

javascript - 嵌套Tree结构对象尝试提取并获取Json对象信息

linux - 无法与 Chef 一起设置 GOPATH

debugging - 如何调试 gRPC-Go 服务?

reactjs - 在 React 中使用 searchKitManager 时出错

intellij-idea - "The selected directory is not a valid home for Go Sdk"

angularjs - 基诺 UI TreeView Angular JS :- How to select the newly added item?

javascript - 我如何使用 angularjs 中的选择框进行搜索

angularjs - 如何设置 Firebase 数据库以在网络上离线工作

c - 调用Windows API函数(stdcall)的符号扩展规则是什么?这是从 Go 调用 WInAPI 所必需的,它对 int 类型很严格