The fastest and flexible framework. You can create simple websites, and websites based on the principles of isomorphism. Monomorphic code that allows to ignore the differences between conventional http and websockets.
Basic routing, layer, middlware, support for Web Sockets. Support for the concept of building applications isomorphic.
var app = require('./core/core.js');
var routes = require('./core/routes.js');
var index = require('./routes/index/index.js')(routes);
// Setter to change the kernel configuration flags
app.setConfigProperty('error_reporting.debug_mode', true);
app.setConfigProperty('error_reporting.log_save', true);
// You can download a configuration object
app.setConfigObject('myConfig', {pid:'333'});
// You can specify an alias for a path to the static
app.setStaticPath('assets', 'css');
app.setRouts('/', index);
app.setRouts('index', index);
app.init(1112, '127.0.0.1');
// init ws connect
app.ws_init(4010);
module.exports = function(routes){
routes.layout = 'basic';
routes.ws('/', function(param, conn){
conn.sendText( JSON.stringify({ recv_text: 'Hello! ' + param.text, status: param.status }) });
routes.get('/', function(req, res){
var uData = {
table: 'USERS',
data:[]
};
res.render('index', { page: ' index page ', userData: uData });
});
routes.get('auth', function(req, res){
// req.session.authStatus(true);
res.redirect('/');
});
routes.post('testAjax', function(req, res){
res.send('hello!');
});
routes.get('account', function(req, res){
// req.session.set({//any data});
res.render('account', {mywork:'data', highload: 'good load is good!'});
});
return routes.getRoutes();
}
routes.get('page', function(req, res){
res.sendFile('film.avi'); //content-type response 'video/x-msvideo'
});
The send method determines the type of file. It may take 1 or 2 parameters. Transmit status of the server automatically serializes the data if the parameter passed to the function or array .
res.send(202, 'success'); // server response code - 202, content-type - text/plain
res.send(503, {type_response: 'error'}); // server response code - 503, content type- application/json
res.send(503, [1,2,3,4,5,6]); // server response code - 503, content-type - text/plain
res.send(202); // server response code - 202, content-type - text/plain
});
res.render('index'); // site/index
res.render('anotherPath/index'); //'anotherPath/index'
});
function fileName(req, res){
res.fileName = 'myvideo';
}
function fileExt(req, res){
res.fileName += '.avi';
}
routes.get('page', function(req, res){
res.sendFile(res.fileName); // 'myvideo' + '.avi'
}, fileName, fileExt);
var app = require('./core/core.js'),
routes = require('./core/routes.js');
site = require('./routes/site/index.js')(routes);
app.setRouts('site', site);
app.init(1112, '127.0.0.1');
app.ws_init(4010);
var routes = require('./../../core/routes.js');
routes.ws('/', function(param, conn){
conn.sendText( JSON.stringify({ recv_text: param.text, status: param.status }) )
});
module.exports = routes;
<script>
function ws(callback){
if(typeof callback!='function') return false;
this.socket=0;
function Init(){
socket = new WebSocket("ws:https://127.0.0.1:4010");
socket.onopen = function(){
console.log("Connect");
};
socket.onmessage = callback;
socket.onclose = function(event){
if(event.wasClean){
console.log('Close connect success');
} else {
getMessage();
console.log('Refused connect');
}
}
socket.onerror = function(error) {
getMessage();
console.log("Error " + error.message);
};
}
Init();
this.send=function(v){
socket.send(v);
};
this.close=function(){
socket.close();
return true;
}
}
var getMessage = function(event){
if(typeof event['data'] == 'undefined') return false;
var data = JSON.parse(event.data);
try{
var data_server = data;
console.info(data_server);
}catch(e){
console.info(e);
}
}
var wsock = new ws(getMessage);
setTimeout(function(){
wsock.send(
controller:'site',
action:'/',
param:{
text:"it's site controller",
status:'success'
}
); }, 400);
</script>