応答の変更

 

JavaScript バックエンド モバイル サービスでは、サーバー スクリプトで、応答に書き込む内容を制御できます。操作によって返される結果を変更できるだけでなく、別の応答を生成することもできます。

次のスクリプトは、データベースからデータを読み取り、それぞれの結果に retrievedAt プロパティを追加して、それらの結果を応答に書き込みます。

function read(query, user, request) {
    request.execute({
        success: function(results) {
            var now = new Date();
            results.forEach(function(item) {
                item.retrievedAt = now;
            });
            request.respond(); //Writes the response
        }
    });
}

次のスクリプトは、既存のスクリプトと値が同じ場合に execute メソッドの呼び出しをバイパスし、代わりに respond メソッドを呼び出して結果を成功として報告します。これにより、重複したレコードが挿入されるのを防ぐことができます。

function insert(item, user, request) {
    var channelTable = tables.getTable('Channel');
    channelTable.where({
        uri: item.uri
    }).read({
        success: insertChannelIfNotFound
    });

    function insertChannelIfNotFound(existingChannels) {
        if (existingChannels.length > 0) {
            request.respond(statusCodes.OK, existingChannels[0]);
        } else {
            request.execute();
        }
    }
}

詳細については、「モバイル サービスのスクリプト リファレンス」を参照してください。

表示: