javascript - 如何从 ember save 方法获取 JSON 响应

标签 javascript json ember.js ember-data ember-cli

我正在为我的网络应用程序创建一个注册函数。 成功注册后,服务器将记录保存到数据库并在响应中返回身份验证 token ,但是我无法从响应中获取身份验证 token 。 这是我在 Controller 中的注册操作

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 响应返回的 token 。 我的浏览器控制台响应日志显示 两者均未定义

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

我什至为 usertoken 创建了一个 Ember 模型,但即使在 promise 完成后,它也是空的。

有趣的是,当我转到 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 格式相同,并且属性记录必须是要保存的 ember 模型的一部分。 就我而言,我通过将响应对象更改为 res.send({'registeruser':{'usertoken':currentToken}}); 解决了这个问题。 并将 usertoken 属性添加到我的 registeruser 模型中。

关于javascript - 如何从 ember save 方法获取 JSON 响应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30994823/

相关文章:

ruby-on-rails - Backbone.js 或 Ember.js 与 Ruby on Rails

javascript - 如何在我的 angularjs 应用程序发送的 iOS 上显示 PDF (Blob)

javascript - jQuery : find length of mixed list

javascript - JSON 字符串化格式数组

javascript - 在 Ember View 中处理 TextField 子项的模糊

javascript - 未指定数据类型时如何设置Ember模型默认值?

javascript - 如何重新注册动态加载的 Angular 模板指令

Javascript:获取父类(super class)中的子类类型

javascript - 无法使用 rivetJs 显示 JSON 对象数组中的值?

javascript - 高效的实时 HTML 表格