superjs-starter v0.1.0
##SuperJS Starter App
A simple starting point for a SuperJS application. Everything in SuperJS is class-based and extendable with the
_extend method. See the SuperJS documentation for more information:
http://github.com/asleepinglion/superjs
####Installing the Application:
- Clone the Starter Repository
- Run
npm intallto install required modules - Update the
config/data.jssettings to point to a real database - Create a real module in the
modulesfolder which reflects an actual table - Run
node app.js
####Testing The API:
By default security is disabled and all REST routes are publicly available. Content-type application/json is required
on POST, PUT, and DELETE requests. All REST routes have RPC routes that match, for example a GET on a table is also
available at http://127.0.0.1:8888/yourtable/search and a POST is also available at
http://127.0.0.1:8888/yourtable/create.
- GET
http://127.0.0.1:8888to check if the server is up. - GET
http://127.0.0.1:8888/describeto describe available controllers and methods. - GET
http://127.0.0.1:8888/yourtableto get the contents ofyourtable - POST
http://127.0.0.1:8888/yourtableto create a newyourtablerecord. - PUT
http://127.0.0.1:8888/yourtableto update a yourtable` record
###Basic Structure
#####app.js
The application starting point contains the instantiation of the SuperJS.Application class. The class could be extended
to override functionality, such as the middleware loaded. You can also hook into events such as the started event.
#####config There are three configuration files, data, security, and server settings. Please check those files for more detailed descriptions.
#####modules
You can either create modules inside the module folder by naming a folder after the module, such as user and then
inside that folder have a controller.js and a model.js OR you can have controllers and models folders which
contain files like user.js. Larger applications will probably prefer the modules method, but this is user preference.
#####models
Models define the available models for the API. The configuration of models is dependent on the engine used. See the
data.js configuration file for more information.
#####controllers
Controllers are entirely extendable and routes are automatically created. Any method beginning with an underscore is
essentially private and unroutable and any regularl method will have a route created for it. Methods that are web
accessible will receive two params, the req object provided by express, and a callback which needs to be called
at the end of your method otherwise the process will be blocked. Controllers are entirely extendable, so you can
create base classes and abstract common functionality. There is a base Controller class available in the SuperJS
package or you can use the Rest Enabled controller classes provided by the database engine. You can also hook into
events such as the beforeAction and afterAction events.