Ext.Direct connector for node.js (npm module)
JavaScript
Switch branches/tags
Nothing to show
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
lib
.gitignore
README.md
README.md.old
index.js
package.json

README.md

Sencha Ext.Direct connector for node.js

Important: Version 2.0.0 and up is not compatible with previous 1.x branch

Compatibility:

  • Sencha Touch 2.3+
  • Ext JS 4.2.x+
  • Ext JS 5+
  • Ext JS 6.5+

Example code

Sample applications for Touch and Ext JS can be found here: https://github.com/jurisv/extdirect.examples

Official Sencha example (using Ext JS 6.5) can be found here: https://github.com/sencha-extjs-examples/Coworkee

Ext JS:

* Application structure with API provider
* Grid CRUD Master-detail
* Cookie / Session
* Direct method call, shows regular call and onw that has hard exception (syntax error)
* Form Load / Submit
* Form file upload (Cross domain upload is not supported!)
* Tree root / child dynamic load
* Metadata (Starting from Ext JS 5)
* Namespaces (From 4.2)

Sencha Touch:

* Application structure with API provider
* List read using directFn
* Form load / submit

Usage

For usage please refer to Examples.

Configuration description:

{
    "ES6": false, // Support method discovery without `function` keyword.  
    "rootNamespace": "Server", // Namespace in which server will be accessible from client side
    "apiName": "API", // API name
    "apiUrl": "/directapi", // URL to retrieve API configuration
    "classRouteUrl": "/direct", // URL to call Direct methods
    "classPath": "/direct", // Direct class location in filesystem relative to the server directory
    "server": "localhost", // Hosting server name
    "port": "3000", // Hosting server port
    "protocol": "http", // http | https
    "timeout": 30000, // Operation timeout
    "cacheAPI": false, // Set true to cache API's for production. During development setting to false will allow to make any changes and access API's without server reload.
    "relativeUrl": false, // Use relative URL's
    "appendRequestResponseObjects": true, // If true, will append req and res objects to method call
    "enableMetadata": true, // Metadata support
    "responseHelper": true, // Automatically append success true|false
    "enableProcessors": true //Enable Helpers to have methods before and after API discovery as well as before and after Transaction batch
}

Changelog:

  • 2.0.5 (10 jul 2017)

    • Add link to Sencha official example. No changes in API.
  • 2.0.4 (14 may 2017)

    • Support method discovery without function keyword. Implement #35
  • 2.0.3 (14 may 2017)

    • Wrong url is computed at request /directapi Fix #36
  • 2.0.2 (23 feb 2017)

    • Fix deeply nested api discovery
  • 2.0.1 (3 jun 2015)

    • Allow callback to return boolean "false" value. (@cpmoser)
  • 2.0.0 (14 may 2015)

    • Comment source code and use descriptive variable names #21
    • Implement namespaced Classes to have nested actions #29 See below
    • Add namespace support (nested Actions) You can now organize files using folders
    • More streamlined definition for metadata and formHandler (//@meta and //@formHandler )
    • Exclude non .js files from API discovery
    • Separate route paths for classes (classRouteUrl and classPath)
    • Use latest Express framework in examples, closes #28
    • New property 'cacheAPI' allows to bypass node module caching, which gives the option to work on class files without reloading the server
    • Callback format changed to be in line with node.js standards callback(err, result); closes #30
    • New property 'responseHelper'. It will add success: true/false to result payload if:
      • We set success to true if responseHelper is TRUE and callback is called without any arguments or with true as result or result object is present, but success is missing
      • We set success to false if autoResponse is TRUE and callback is called with result set to false
    • Place Processor files or any othere relevant scriots in .scripts folder. It will be ignored during API discovery
    • API Processor. Two methods beforeApi and afterApi to hook in to API discovery flow. See Examples for ExtJS
    • Router Processor. Two methods beforeTransaction and afterTransaction. See Examples for ExtJS. Use them to open and close db connection.
    • Add support for metadata #27