qserver
v0.1.8
Published
An easy way to setup an express server using sequelize and other modules
Downloads
3
Maintainers
Readme
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