2015-11-14 7 views
0

Я создаю словарь с несколькими переменными.Устанавливается строчка перед значением переменных

Я строю его и отправляю в виде запроса PUT.

Запрос проходит, однако все поля заполняются именем переменных (friendRequest, friendRequester, requestedFriend) вместо их значений!

Parse.Cloud.define("createChatRoom", function(request, response) { 

    var friendRequest = request.params.friendRequestId.toString(); 
    var friendRequester = request.params.friendRequester.toString(); 
    var requestedFriend = request.params.requestedFriend.toString(); 

    var chatPayload = {} 
    chatPayload["room"] = {friendRequest: true}; 
    chatPayload["members"] = {friendRequest: {friendRequester: true, requestedFriend: true}} 

    (...) 

    Parse.Cloud.httpRequest({ 
    url: 'https://myapp.firebaseIO.com/app' + '.json', 
    headers: {'Content-Type': 'application/json'}, 
    method: 'PUT', 
    params: {'auth': token}, 
    body: JSON.stringify(chatPayload) 
    }).then(function(httpResponse) { 
     response.success("Successfully created chat room!"); 
    },function(httpResponse) { 
     response.error("failed to create chat room" + httpResponse.text) 
    }) 
}) 

Что я делаю неправильно?

+0

Вы пытались передать Content-Type как 'application/json' в свой ресурс params? Клиент запроса http, который вы используете, может по умолчанию использовать что-то другое. – CaptainAdams

+0

Прежде всего, вы должны использовать точечный синтаксис для 'chatPayload.room' и' chatPayload.members'. Во-вторых, вы должны использовать 'x.toString()', а не 'String (x)', чтобы явно вывести строку. – PitaJ

+0

@PitaJ gotcha, любые идеи по этому вопросу? –

ответ

0

Отвечая на мой вопрос:

Похоже, это было stringify ИНГ даже имена переменных, потому как ключи, они не объявлены.

Объявление каждого ключа индивидуально с помощью индексатора для меня работало, однако оно представляется излишне подробным. Должен быть более сжатый способ ...

var chatPayload = {}; 
    chatPayload.room = {}; 
    chatPayload.room[friendRequest] = true; 

    chatPayload.members = {}; 
    chatPayload.members[friendRequest] = {}; 
    chatPayload.members[friendRequest][friendRequester] = true 
    chatPayload.members[friendRequest][requestedFriend] = true