qserver

0.1.8 • Public • Published

Api Reference

Initialize app

Installation

npm install qserver

Setup app

var qServer = require('qserver'),
    App = qServer.App,
    app = new App();

Settings

.setDatabase

Like wrapper uses sequelize, so it uses Sequelize configuration. To set models, it get a function that recieves sequelize instance and data-types and return models.

app.setDatabase(
    // Sequelize configuration
    {
        name : 'tablename',
        username : 'username',
        password : 'password',
        settings : {
            dialect : 'postgres', // Default: sqlite
            port: 5432,
            ..      (other Sequelize settings)
        }
    },
    // Models
    function(sequelize,DataTypes){
        var models = {};
        models.User = sequelize.define('User', {
            name: DataTypes.STRING
        });
        return models;
    }
);

.addModels

.addModels adds new models to database

app.addModels(
    function(sequelize,DataTypes){
        var models = {};
        models.Task = sequelize.define('Task', {
            title: DataTypes.STRING,
            details: DataTypes.STRING
        });
        return models;
    }
);

.setViewEngine

.setViewEngine method sets view engine and views path, it recieves an object with attributes path, extension and engine. 'path' attribute sets the views path, extension is the file's to render extension and engine is the view engine.

app.setViewEngine({
    path : __dirname+'/views',
    extension : 'jade',
    engine : require('jade').__express
});

.setPublicDirectory

.setPublicDirectory method the public directory path

app.setPublicDirectory(__dirname + '/public');

Router

.addRoute

.addRoute method works with dependency injection, it recieves a function with dependencies to resolve and returns the route configuration

app.addRoute(function(){ // Function recieves dependencies like $database
    return {   
        method : 'POST', // Default: GET
        path : '/new/path',
        callback : function(request,response){
            ...
        }
    };
})

Install apps

You can also compose other apps eith your main app

App installer

Tha app installer is the function that contains app to be installed, this function recieves app that will be composed (parent).

var subAppInstaller = function(parent){
    // Sub-app
    var subApp = new App(parent);
    // Sub-app route
    subApp.addRoute(function() {
        ...
    });
};

If app should be installed inside a costum path it also should be recived as a parameter before parent. Route paths inside sub-app will be after path sent by installer function.

var subAppInstallerWithPath = function(path,parent){
    // Sub-app
    var subApp = new App(path,parent);
    // Sub-app route
    subApp.addRoute(function() {
        ...
    });
};

.install

This is how we will install sub-apps

// Without using path
app.install(subAppInstaller);
// Using path
app.install('/sub-app',subAppInstallerWithPath);

Sockets

Based on Socket.io.

.socket

Receives a function as a paramater, that function receives the io server instance

app.socket( function(io) {
    io.on('connection', function (socket) {
        socket.emit('news', { hello: 'world' });
        socket.on('my other event', function (data) {
            console.log(data);
        });
    }); 
});

Dependencies

Wrapper works with dependency injection, here we list available dependencies

$database

This is the instance of the app database

Package Sidebar

Install

npm i qserver

Weekly Downloads

5

Version

0.1.8

License

none

Last publish

Collaborators

  • dsilva2401