为了账号安全,请及时绑定邮箱和手机立即绑定

从 angularJS 发送 JSON 数据,以便 Go 服务器可以解析为 struct

从 angularJS 发送 JSON 数据,以便 Go 服务器可以解析为 struct

Go
阿晨1998 2022-01-10 17:34:12
我在我的客户端中使用 angularJS $resource 并想创建一个自定义 PATCH 函数,我将数据发送到我的 GO 服务器。我想将我的 GO 服务器上的数据解析为一个结构。我尝试像下面的代码一样发送数据,但 GO 服务器将值输出为“[object Object]”,并在我尝试编组时生成错误。数据应该作为 PATCH 的查询字符串包含,还是可以/应该包含在请求正文中?var UpdateOneSchedule = $resource('/schedules/me/:bkchangeobject', {bkchangeobject:{}},{    update:{        method: 'PATCH',        isArray: false,    }});我的 PATCH 请求中的代码片段            var updateObject = {"title":"value", "description":"value"}            console.log(updateObject)            UpdateOneSchedule.update({bkchangeobject:updateObject},            function(data){                //on success            },            function(httpResponse){                //on error                if(httpResponse.status === 409){ //StatusConflict                    //                    revertFunc()                }            });go server 长这样func (db *bkDatabase) updateSchedule(w http.ResponseWriter, r *http.Request) {    bkDB := bkDatabase{db.session.Copy()}    defer bkDB.closeDB()    //check tokens    if bkSystem.db.isAuthorized(w, r) {        param := mux.Vars(r)["bkchangeobject"]        fmt.Println(param)        var change_object event        err := json.Unmarshal([]byte(param), &change_object)        if err != nil {            log.Fatalf("JSON Unmarshal error: %v", err)        }        fmt.Println(change_object)    } else {    }}
查看完整描述

1 回答

?
qq_笑_17

TA贡献1818条经验 获得超7个赞

我不知道如何使用 angularJS $resource,我是 angularJS 新手。但我已经实现了类似的东西,使用以下代码:


在我的控制器中,我声明了将发送到服务器端的对象:


$scope.message = {

  From: {

    Email: '',

    Name: ''

  },

  Subject: '',

  Content: ''

}

该对象链接到范围,因此可以由用户填写。我还创建了一个将对象发送到服务器端的服务:


.service('ContactService', function ($http) {

this.url = 'http://url.toyourwebservice.golang/what/you/want';


this.send = function (contact) {

  return $http.post(this.url, contact);

};

});


这样,在服务器端,我可以检索请求正文中的对象:


b, err := ioutil.ReadAll(r.Body)

    if err != nil {

        return err

    }

if len(b) != 0 {

    err = json.Unmarshal(b, contact)

    if err != nil {

        return err

    }

    // Do whatever you want with contact

}

希望这有帮助!


查看完整回答
反对 回复 2022-01-10
  • 1 回答
  • 0 关注
  • 165 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号