簡體   English   中英

如何從ember save方法獲取JSON響應

[英]How to get JSON response from ember save method

我正在為我的Web應用程序創建注冊功能。 成功注冊后,服務器會將記錄保存到db並在響應中返回auth令牌,但是我無法從響應中獲取auth令牌。 這是我在控制器中的注冊動作

registeruser2: function () {
  //  this.set('paneRadioClassFemale','radioActive');

  var self = this,
    data = this.getProperties('useremail', 'userpassword', "userfullname", 'mm', 'dd', 'yyyy', 'usercity', 'userstate', 'userzip', 'usergender');
  console.log(data);


  var registeruser = self.store.createRecord('registeruser', data);


  registeruser.save().then(function(response){
    console.log(response.get('token'));
    console.log(response.get('usertoken'));
    //self.set('token')
    self.transitionToRoute('userhomeselectbrand');
  });



},

這是我的Express Server功能來保留數據

router.post('/registerusers',function(req,res){

  //  console.log(req.body);
  //  console.log(req.body.registeruser.useremail);
    var currentToken = hat();
    var hiveuser = new Hiveuser();
    var dateString=req.body.registeruser.yyyy+"/"+req.body.registeruser.mm+"/"+req.body.registeruser.dd;
    var dateOfBirth=new Date(dateString);
    hiveuser.email = req.body.registeruser.useremail;
    hiveuser.password = req.body.registeruser.userpassword;
    hiveuser.fullname = req.body.registeruser.userfullname;
    hiveuser.dateofbith=dateOfBirth;
    hiveuser.city=req.body.registeruser.usercity;
    hiveuser.state=req.body.registeruser.userstate;
    hiveuser.zip=req.body.registeruser.userzip;
    hiveuser.sex=req.body.registeruser.usergender;
    hiveuser.registertype="hive";
    hiveuser.authtoken=currentToken;
    console.log(currentToken);

    var userEmail=req.body.registeruser.useremail;

    Hiveuser.find({'email':userEmail},function(err,findResponse){


            hiveuser.save(function(err) {
                if (err)
                    res.send(err);
                authtoken=new AuthToken();
                authtoken.email=userEmail;
                authtoken.auth_token=currentToken;
                authtoken.created_date=new Date();
                authtoken.expiry_date=authtoken.created_date+160000;

                authtoken.save(function(err1){
                    if(err1)
                        res.send(err1);
                });
                res.send({'usertoken':{'success':true,'token':currentToken}});
            });

    });


}); 

我只想檢索Ember響應返回的令牌。 我的瀏覽器控制台日志中的響應均未定義

        console.log(response.get('token'));
        console.log(response.get('usertoken'));

我什至為usertoken創建了一個Ember模型,但是即使在諾言完成后,它也是空的。

有趣的是,當我進入Chrome檢查器中的“網絡”標簽時,我看到了正確的預期響應,即

{"usertoken":{"success":true,"token":"20cade39a77931d8a7e9facfd10c5803"}}

但是無法獲得Ember數據中的響應。 如果我做一個console.log(response)我得到以下數據

Class {id: null, store: Class, container: Container, _changesToSync: Object, _deferredTriggers: Array[0]…}__ember1435038661483: "ember650"__ember_meta__: Object__nextSuper: undefined_attributes: Object_changesToSync: Object_data: Object_deferredTriggers: Array[0]_implicitRelationships: Object_inFlightAttributes: Object_recordArrays: ember$data$lib$system$ordered$set$$OrderedSet_relationships: Object_updatingRecordArraysLater: falsecontainer: ContainercurrentState: (...)get currentState: GETTER_FUNCTION() {set currentState: (val) {id: nullstore: ClasstoString: () {__proto__: Class

但是我打算將json放在任何地方都整天都沒有,請幫忙

好的,我為陷入同一問題的任何人解決了此問題,響應json必須與請求json格式相同,並且屬性記錄必須是所保存的余燼模型的一部分。 就我而言,我將響應對象更改為res.send({'registeruser':{'usertoken':currentToken}}); 並將usertoken屬性添加到我的registeruser模型。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM