Files
2014-09-14 07:04:16 -04:00

116 lines
2.5 KiB
JavaScript

var express = require('express');
var app = express();
var http = require('http');
var socketio = require('socket.io');
var pile = require("../../index");
var logger = {};
var share = require("./share");
console.log(share.test());
function isEmail(s) {
return !! s.match(/.\w+@\w+\.\w/);
}
var loggerConf = {
levels: {
debug: 0,
info: 1,
notice: 2,
warn: 3,
warning: 3,
error: 4,
critical: 5,
crit: 5,
alert: 6,
emerg: 7
},
colors: {
debug: 'grey',
info: 'blue',
notice: 'green',
warn: 'yellow',
warning: 'yellow',
error: 'red',
critical: 'red',
crit: 'red',
alert: 'red',
emerg: 'red'
},
transports: [
new (require('winston').transports.Console)({
colorize: true,
timestampe: true,
"level": 'debug',
"silent": false
})
]
};
var logger = new (require('winston').Logger)(loggerConf);
var srv = http.createServer(app);
// Socket.IO
var io = socketio.listen(srv,{"logger":logger});
io.configure(function(){
io.enable('browser client gzip');
io.enable('browser client minification');
io.disable('flash policy server');
});
// Piler config
var js = pile.createJSManager({ outputDirectory: __dirname + "/out", "logger":logger });
var css = pile.createCSSManager({ outputDirectory: __dirname + "/out", "logger":logger });
js.bind(app,srv);
css.bind(app,srv);
app.configure(function() {
app.set('views', __dirname + "/views");
});
app.configure("development", function() {
js.liveUpdate(css,io);
});
css.addFile(__dirname + "/style.css");
css.addFile(__dirname + "/style.styl");
css.addFile(__dirname + "/style.less");
js.addOb({MY: {
isEmail: isEmail
}
});
js.addOb({FOO: "bar"});
js.addUrl("http://ajax.googleapis.com/ajax/libs/jquery/1.6.2/jquery.js");
js.addFile(__dirname + "/client/underscore.js");
js.addFile(__dirname + "/client/backbone.js");
js.addFile(__dirname + "/client/hello.js");
js.addFile(__dirname + "/client/hello.coffee");
js.addFile("foo", __dirname + "/client/foo.coffee");
js.addFile("bar", __dirname + "/client/bar.coffee");
js.addFile(__dirname + "/share.js");
app.get("/", function(req, res){
res.exec(function() {
console.log("Run client code from the response", FOO);
console.log(share.test());
});
res.render("index.jade", {
layout: false,
js: js.renderTags("foo"),
css: css.renderTags()
});
});
srv.listen(8001, function(){
logger.notice("listening on 8001");
});