Using node, express, socket.io, jade and angular. Getting the error: TypeError: Cannot read property 'apply' of undefined. Any suggestions?
index.js:
module.exports = function(app, res) {
  res.render('index', { title: 'Express' });
  var io = app.get('io');
  io.on('connection', function(socket){
  });
};
index.jade:
extends layout
block content
script.
    var app = angular.module('hackigur', []);
    var socket = io.connect();
    var refreshTimer = 10;
    app.controller('UpdateController', function($scope){
        //socket.on('update', function(msg){
            //$scope.refreshTimer = msg;
            //$scope.$apply();
        //});
        setInterval(secondTick,1000);
        function secondTick() {
            if(refreshTimer != 0) {
                refreshTimer -= 1;
            }
            $scope.refreshTimer = refreshTimer;
            $scope.$apply();
        };
    });
h1= title
p Welcome to #{title}
div(ng-controller="UpdateController")
    p(ng-bind="refreshTimer")
layout.jade:
doctype html
html(ng-app="hackigur")
  head
    title= title
    script(src = "/socket.io/socket.io.js")
    script(src = "/js/angular/angular.min.js")
  body
    block content
Full error:
Server listening on port 3000
TypeError: Cannot read property 'apply' of undefined
    at Server.(anonymous function) [as on] (D:\Projects\hackigur\node_modules\so
cket.io\lib\index.js:364:15)
    at module.exports (D:\Projects\hackigur\server\api\index.js:30:8) at ...
                My router which called my index.js passed app in the module.export as such:
module.export = function (app) {
    app.get( ... , function(..., res) { 
        require(index.js)(app)(res);
};
I needed to declare a variable for app external to my module.export:
var x;
module.export = function (app) {
    x = app;
        app.get( ... , function(..., res) { 
        require(index.js)(x)(res);
};
Don't fully understand why it worked, but it seemed to pass the correct app object to app.get by applying the above.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With