I'm building a node.js app using express and jade frameworks. The app has the standard skeleton, that's how it looks the main directory :
- app.js
- bin
- npm-debug.log
- views
- node_modules
- package.json
- public
The problem occurs when I try to load the socket.io module in a js file (called lets say x.js) within the public directory. That's where I've implemented some logic tightly connected to user-action event handling. So in other words when someone clicks on a button 'connect', I'd like to establish connection using socket.io. The problem is that when I add this line
var socket_io = require('socket.io'); in x.js (x.js is located in the /public dir)
the whole functionality suddenly stops working, I guess due to the fact that the module is not loaded although the var socket_io isn't used anywhere below within the x.js file. If I add the line var socket_io = require('socket.io'); to app.js everything works. I looked into this SO question but with no success. Can someone explain why is this happening and what am I doing wrong?
Edit: Just to clarify that I've added 'socket.io' to the package.json file. Also installed socket.io both globally and locally using npm install (-g) socket.io command.
