# Ext.data.DataWriter Example

This example shows how to implement a Writer for your Store. A Writer-enabled Store frees you from having to manually compose Ajax requests to perform CRUD actions on a Store.

Note that the js is not minified so it is readable. See writer.js, UserForm.js and UserGrid.js.

The HttpProxy plugged into the store in this example uses the new api configuration instead of an url. A simple MVC-like php backend has been created for this example which simulates a database by storing records in $_SESSION. See the file /remote/app/controllers/users.php. You may have to configure your web-server to allow scripts to be executed in the /examples directory.

`

    var proxy = new Ext.data.HttpProxy({
        api: {
            read    : 'app.php/users/read',
            create  : 'app.php/users/create',
            update  : 'app.php/users/update',
            destroy : 'app.php/users/destroy'
        }
    });

`

Take note of the requests being generated in Firebug as you interact with the Grid and Form.

An Error has been simulated on the server-side: Attempting to update a record having ODD-numbered id will generate this errror. Responses from the update action will have successProperty === false along with a message. This error can be handled by listening to the "exception" event upon your Store.

`

    exception : function(proxy, type, action, options, res, arg) {
        if (type === 'remote') {
            Ext.Msg.show({
                title: 'REMOTE EXCEPTION',
                msg: res.message,
                icon: Ext.MessageBox.ERROR
            });
        }
    }

`

Note: This new "exception" event supercedes the old loadexception event which is now deprecated.