diff --git a/README.md b/README.md index 8b44679..056a447 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,19 @@ -![express.io](http://cdn.techpines.io/express.io-black.png) +## UPDATES +Solved the problems related with te problems: "cannot find module 'express/node_modules/connect' " and "Cannot find module './node_modules/coffee-script' " +1. Download this code and run: +``` +npm install +``` + +2. After that run: + +``` +npm run test +``` + + +## realtime-web framework for node.js ```coffeescript diff --git a/lib/index.coffee b/lib/index.coffee index c6887fb..ce6b25e 100644 --- a/lib/index.coffee +++ b/lib/index.coffee @@ -1,8 +1,5 @@ -cookieParser = require 'cookie-parser' -cookieParserUtils = require 'cookie-parser/lib/parse' +connect = require 'connect' express = require 'express' -expressLayer = require 'express/lib/router/layer' -expressSession = require 'express-session' io = require 'socket.io' http = require 'http' https = require 'https' @@ -16,12 +13,12 @@ RoomIO = require('./room').RoomIO express.io = io express.io.routeForward = middleware.routeForward -session = expressSession; +session = express.session delete express.session sessionConfig = new Object express.session = (options) -> options ?= new Object - options.key ?= 'express.sid' + options.key ?= 'connect.sid' options.store ?= new session.MemoryStore options.cookie ?= new Object sessionConfig = options @@ -40,7 +37,7 @@ express.application.https = (options) -> express.application.io = (options) -> options ?= new Object defaultOptions = log:false - _.defaults options, defaultOptions + _.extend options, defaultOptions @io = io.listen @server, options @io.router = new Object @io.middleware = [] @@ -63,7 +60,7 @@ express.application.io = (options) -> , (error) -> return next error if error? next null, true - cookieParser = cookieParser() + cookieParser = express.cookieParser() cookieParser data, null, (error) -> return next error if error? rawCookie = data.cookies[sessionConfig.key] @@ -73,18 +70,18 @@ express.application.io = (options) -> data.cookies = request.cookies rawCookie = data.cookies[sessionConfig.key] return next "No cookie present", false unless rawCookie? - sessionId = cookieParserUtils.signedCookies rawCookie, sessionConfig.secret + sessionId = connect.utils.parseSignedCookie rawCookie, sessionConfig.secret data.sessionID = sessionId sessionConfig.store.get sessionId, (error, session) -> return next error if error? - data.session = new expressSession.Session data, session + data.session = new connect.session.Session data, session next null, true - sessionId = cookieParserUtils.signedCookies rawCookie, sessionConfig.secret + sessionId = connect.utils.parseSignedCookie rawCookie, sessionConfig.secret data.sessionID = sessionId sessionConfig.store.get sessionId, (error, session) -> return next error if error? - data.session = new expressSession.Session data, session + data.session = new connect.session.Session data, session next null, true @io.use = (callback) => @@ -98,32 +95,27 @@ express.application.io = (options) -> @io.sockets.emit.apply @io.sockets, args @io.room = (room) => - new RoomIO(room, @io.sockets) - - layer = new expressLayer('', - sensitive: undefined - strict: undefined - end: false - , (request, response, next) => - request.io = - route: (route) => - ioRequest = new Object - for key, value of request - ioRequest[key] = value - ioRequest.io = - broadcast: @io.broadcast - respond: => - args = Array.prototype.slice.call arguments, 0 - response.json.apply response, args - route: (route) => - @io.route route, ioRequest, trigger: true - data: request.body - @io.route route, ioRequest, trigger: true - broadcast: @io.broadcast - next() - ) - - @_router.stack.push layer + new RoomIO(room, @io.sockets) + + @stack.push + route: '' + handle: (request, response, next) => + request.io = + route: (route) => + ioRequest = new Object + for key, value of request + ioRequest[key] = value + ioRequest.io = + broadcast: @io.broadcast + respond: => + args = Array.prototype.slice.call arguments, 0 + response.json.apply response, args + route: (route) => + @io.route route, ioRequest, trigger: true + data: request.body + @io.route route, ioRequest, trigger: true + broadcast: @io.broadcast + next() return this @@ -152,7 +144,7 @@ initRoutes = (socket, io) -> cookies: socket.handshake.cookies handshake: socket.handshake session = socket.handshake.session - request.session = new expressSession.Session request, session if session? + request.session = new connect.session.Session request, session if session? socket.handshake.session = request.session request.io = new RequestIO(socket, request, io) request.io.respond = respond diff --git a/switch.js b/switch.js index 243884c..87c1791 100644 --- a/switch.js +++ b/switch.js @@ -2,7 +2,7 @@ try { module.exports = require('./compiled'); } catch(error) { - require('./node_modules/coffee-script'); + require('coffee-script'); module.exports = require('./lib'); }