]> git.example.dev Git - binbsis50.git/commitdiff
migrated to express 3.x and node 0.8
authorLuigi Pinca <luigipinca@gmail.com>
Thu, 16 Aug 2012 18:30:29 +0000 (20:30 +0200)
committerLuigi Pinca <luigipinca@gmail.com>
Thu, 16 Aug 2012 18:30:29 +0000 (20:30 +0200)
app.js
package.json
routes/user.js
views/index.jade
views/login.jade
views/recoverpasswd.jade
views/room.jade
views/signup.jade

diff --git a/app.js b/app.js
index 9ef114a2282c97dae463b865ac9874642a7105a7..d4750dfb5f82c8b1cb99457da9db505428d50973 100644 (file)
--- a/app.js
+++ b/app.js
@@ -4,7 +4,9 @@
 
 var config = require('./config')
     , express = require('express')
-    , parseCookie = require('connect').utils.parseCookie
+    , http = require('http')
+    , parseCookie = require('express/node_modules/cookie').parse
+    , parseSignedCookies = require('express/node_modules/connect').utils.parseSignedCookies
     , redisstore = require('connect-redis')(express)
     , redisurl = require('redis-url')
     , site = require('./routes/site')
@@ -28,30 +30,29 @@ usersdb.on('error', function(err) {
 /**
  * Setting up Express.
  */
-var sessionstore = new redisstore({client:usersdb})
-    , app = express.createServer();
+
+var app = express()
+    , sessionstore = new redisstore({client:usersdb});
 
 // Configuration
 app.use(express.static(__dirname + '/public'), {maxAge: 2592000000});
 app.use(express.favicon(__dirname + '/public/static/images/favicon.ico', {maxAge: 2592000000}));
 app.use(express.bodyParser());
-app.use(express.cookieParser());
-app.use(express.session({secret:process.env.SESSION_SECRET,store:sessionstore}));
-
+app.use(express.cookieParser(process.env.SITE_SECRET));
+app.use(express.session({store:sessionstore}));
 app.set('view engine', 'jade');
-app.set('view options', {layout:false});
 
-app.dynamicHelpers({
-    errors: function(req, res) {
-        var errors = req.session.errors;
+// Middleware to report errors during form submission
+app.use(function(req, res, next) {
+    if (req.session.errors) {
+        res.locals.errors = req.session.errors;
         delete req.session.errors;
-        return errors;
-    },
-    oldvalues: function(req, res) {
-        var oldvalues = req.session.oldvalues;
+    }
+    if (req.session.oldvalues) {
+        res.locals.oldvalues = req.session.oldvalues;
         delete req.session.oldvalues;
-        return oldvalues;
     }
+    next();
 });
 
 // Routes
@@ -75,14 +76,14 @@ app.post('/resetpasswd', user.resetPasswd);
 app.get('/:room', site.room);
 app.get('/user/*', user.profile);
 
-// App listen
-app.listen(config.port);
+// HTTP server object
+var server = http.createServer(app);
 
 /**
  * Setting up Socket.IO.
  */
 
-var io = require('socket.io').listen(app)
+var io = require('socket.io').listen(server)
     , sockets = Object.create(null); // Sockets of all rooms
 
 // Configuration
@@ -102,7 +103,8 @@ io.set('authorization', function(data, accept) {
     if(!data.headers.cookie) {
         return accept('no cookie transmitted', false);
     }
-    var cookie = parseCookie(data.headers.cookie);
+    var signedcookie = parseCookie(decodeURIComponent(data.headers.cookie));
+    var cookie = parseSignedCookies(signedcookie, process.env.SITE_SECRET);
     sessionstore.get(cookie['connect.sid'], function(err, session) {
         if (err) {
             return accept(err.message, false);
@@ -188,4 +190,6 @@ for (var i=0; i<config.rooms.length; i++) {
     rooms[config.rooms[i]].start();
 }
 
+// Begin accepting connections
+server.listen(config.port);
 console.log('   binb started and listening on port ' + config.port);
index 7213e955fe9e2238fc59dce2a6a28cf34f835817..bc131e37ec67b54d9bdec9dad1f70ab767f7019a 100644 (file)
@@ -2,9 +2,8 @@
   "dependencies": {
     "async": "0.1.x",
     "canvas": "0.13.x",
-    "connect": "1.9.x",
     "connect-redis": "1.4.x",
-    "express": "2.5.x",
+    "express": "3.0.x",
     "jade": "0.27.x",
     "nodemailer": "0.3.x",
     "redis": "0.7.x",
     "socket.io": "0.9.x"
   },
   "engines": {
-    "node": "0.6.x"
+    "node": "0.8.x"
   },
   "name": "binb",
   "scripts": {
     "start": "app.js"
   },
   "subdomain": "binb",
-  "version": "0.3.2-17"
+  "version": "0.3.3"
 }
\ No newline at end of file
index f357eb8a2ff8bbe20a0c7bcecf23d11ebd5e46e2..2f338480c416d048d9426b1c7a91b0d615105c31 100644 (file)
@@ -318,7 +318,7 @@ exports.createAccount = function(req, res) {
     db.set(mailkey, userkey);
     db.zadd('users', 0, req.body.username);
     db.sadd('emails', req.body.email);
-    // Delete old fields values (we don't want these to be available in login view)
+    // Delete old fields values
     delete req.session.oldvalues;
     var msg = 'You successfully created your account. You are now ready to login.';
     res.render('login', {followup:req.query.followup,success:msg});
@@ -367,6 +367,7 @@ exports.sendEmail = function(req, res) {
                     }
                 });
             });
+            delete req.session.oldvalues;
             return res.render('recoverpasswd', {followup:req.query.followup,success:true});
         }
         req.session.errors = {alert: 'The email address you specified could not be found'};
index d7149845346e9c0c38337fcb071ecbba3031b902..1ca60086796ede2b2a8fe748acbf1fda856214a8 100644 (file)
@@ -59,6 +59,8 @@ html
                         ul.thumbnails
                             each item in rooms
                                 li.span4
-                                    a.thumbnail.relative(href="/#{item}")
-                                        .room #{item} - <span id="#{item}"></span> Players
+                                    a.thumbnail.relative(href=item)
+                                        .room #{item} - 
+                                            span(id=item)
+                                            |  Players
             include footer
index 51c3a286fcc9066d24f9e35bd2bcecc2c27e72ba..68b1a47e5425e2e7c9ab4c64a27d8df184f923b0 100644 (file)
@@ -43,14 +43,14 @@ html
                                             label.control-label(for="username") Name
                                             .controls
                                                 input#username(type="text",name="username",
-                                                    value="#{oldvalues.username}")
+                                                    value=oldvalues.username)
                                                 span.help-inline #{errors.username}
                                     else
                                         .control-group
                                             label.control-label(for="username") Name
                                             .controls
                                                 input#username(type="text",name="username",
-                                                    value="#{oldvalues.username}")
+                                                    value=oldvalues.username)
                                     if (typeof(errors.password) !== 'undefined')
                                         .control-group.error
                                             label.control-label(for="password") Password
index a8e8d27ee57014de1fd4376cfa78527861312f9b..947f4bac6a2a0908541913e7e690469fd3673bba 100644 (file)
@@ -44,20 +44,20 @@ html
                                                 label.control-label(for="email") Email
                                                 .controls
                                                     input#oldpassword(type="text",name="email",
-                                                        value="#{oldvalues.email}")
+                                                        value=oldvalues.email)
                                                     span.help-inline #{errors.email}
                                         else
                                             .control-group
                                                 label.control-label(for="email") Email
                                                 .controls
                                                     input#username(type="text",name="email",
-                                                        value="#{oldvalues.email}")
+                                                        value=oldvalues.email)
                                         if (typeof(errors.captcha) !== 'undefined')
                                             .control-group.error
                                                 label.control-label(for="captcha-input")
                                                     | Are you human?
                                                 .controls
-                                                    img#captcha(src="#{captchaurl}")
+                                                    img#captcha(src=captchaurl)
                                                     input#captcha-input(type="text",name="captcha")
                                                     span.help-inline #{errors.captcha}
                                         else
@@ -65,7 +65,7 @@ html
                                                 label.control-label(for="captcha-input")
                                                     | Are you human?
                                                 .controls
-                                                    img#captcha(src="#{captchaurl}")
+                                                    img#captcha(src=captchaurl)
                                                     input#captcha-input(type="text",name="captcha",
                                                         placeholder="type what you see...")
                                     else
@@ -77,7 +77,7 @@ html
                                         .control-group
                                             label.control-label(for="captcha-input") Are you human?
                                             .controls
-                                                img#captcha(src="#{captchaurl}")
+                                                img#captcha(src=captchaurl)
                                                 input#captcha-input(type="text",name="captcha",
                                                     placeholder="type what you see...")
                                     button.submit-button.btn.btn-primary(type="submit")
index 6f303b5f76eb20a618175e1826f449dce1757f12..ad501d2ddf0652f7b4808d1d06293ebaec3058f9 100644 (file)
@@ -27,7 +27,7 @@ html
                                 each item in rooms
                                     if item != roomname
                                         li
-                                            a(href="/#{item}") #{item}
+                                            a(href=item) #{item}
                         if (typeof(loggedin) !== "undefined")
                             li.dropdown
                                 a.dropdown-toggle(data-toggle="dropdown",
index bca03237f956b5b883c064945ec8613b84d0c943..326acb84c95ea966d1606de71781e6b536027565 100644 (file)
@@ -45,27 +45,27 @@ html
                                             label.control-label(for="username") Name
                                             .controls
                                                 input#username(type="text",name="username",
-                                                    value="#{oldvalues.username}")
+                                                    value=oldvalues.username)
                                                 span.help-inline #{errors.username}
                                     else
                                         .control-group
                                             label.control-label(for="username") Name
                                             .controls
                                                 input#username(type="text",name="username",
-                                                    value="#{oldvalues.username}")
+                                                    value=oldvalues.username)
                                     if (typeof(errors.email) !== 'undefined')
                                         .control-group.error
                                             label.control-label(for="email") Email
                                             .controls
                                                 input#email(type="text",name="email",
-                                                    value="#{oldvalues.email}")
+                                                    value=oldvalues.email)
                                                 span.help-inline #{errors.email}
                                     else
                                         .control-group
                                             label.control-label(for="email") Email
                                             .controls
                                                 input#email(type="text",name="email",
-                                                    value="#{oldvalues.email}")
+                                                    value=oldvalues.email)
                                     if (typeof(errors.password) !== 'undefined')
                                         .control-group.error
                                             label.control-label(for="password") Password
@@ -82,14 +82,14 @@ html
                                         .control-group.error
                                             label.control-label(for="captcha-input") Are you human?
                                             .controls
-                                                img#captcha(src="#{captchaurl}")
+                                                img#captcha(src=captchaurl)
                                                 input#captcha-input(type="text",name="captcha")
                                                 span.help-inline #{errors.captcha}
                                     else
                                         .control-group
                                             label.control-label(for="captcha-input") Are you human?
                                             .controls
-                                                img#captcha(src="#{captchaurl}")
+                                                img#captcha(src=captchaurl)
                                                 input#captcha-input(type="text",name="captcha",
                                                     placeholder="type what you see...")
                                 else
@@ -111,7 +111,7 @@ html
                                     .control-group
                                         label.control-label(for="captcha-input") Are you human?
                                         .controls
-                                            img#captcha(src="#{captchaurl}")
+                                            img#captcha(src=captchaurl)
                                             input#captcha-input(type="text",name="captcha",
                                                 placeholder="type what you see...")
                                 button.submit-button.btn.btn-success(type="submit")