Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
16 changes: 15 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
@@ -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
Expand Down
70 changes: 31 additions & 39 deletions lib/index.coffee
Original file line number Diff line number Diff line change
@@ -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'
Expand All @@ -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
Expand All @@ -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 = []
Expand All @@ -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]
Expand All @@ -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) =>
Expand All @@ -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

Expand Down Expand Up @@ -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
Expand Down
2 changes: 1 addition & 1 deletion switch.js
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
try {
module.exports = require('./compiled');
} catch(error) {
require('./node_modules/coffee-script');
require('coffee-script');
module.exports = require('./lib');
}