2013-08-23 42 views
0

我有一個express.js應用程序,得到這樣的:爲什麼我的express.js不能運行?

node app.js 
info - socket.io started 

,它不會再得到任何,如果有人可以解釋爲什麼發生這種情況,以及如何解決它,這將不勝感激。我相信錯誤是在我的app.js這是張貼在這裏:

var express = require('express'); 
var app = express(); 
var mongojs = require('mongojs'); 
var http = require('http'); 
var db = mongojs('127.0.0.1:27017/mySpendingDB', ['users']); 
var server = http.createServer(app); 
var io = require('socket.io').listen(server); 
var path = require('path'); 
app.configure(function() { 
    app.set('views', __dirname + '/views'); 
    app.set('view engine', 'ejs'); 
    app.engine('html', require('ejs').renderFile); 
    app.use(express.static(path.join(__dirname, 'public'))); 
}); 
app.get('/', function (req, res) { 
    res.render('login.html', { 
    title: 'Login' 
    }); 
}); 
app.get('/index', function (req, res) { 
    res.render('index.html', { 
    title: 'Daily' 
    }); 
}); 
app.get('/monthly', function (req, res) { 
    res.render('monthly.html', { 
    title: 'Monthly' 
    }); 
}); 
app.get('/yearly', function (req, res) { 
    res.render('yearly.html', { 
    title: 'Login' 
    }); 
}); 
app.get('/logout', function (req, res) { 
    req.logout(); 
    res.redirect('/'); 
}); 
var user = ""; 
io.sockets.on('connection', function (socket) { 
    console.log('socket.io started'); 
    socket.on('login', function (data) { 
    var checkUser = db.users.find(data); 
    if (checkUser !== null) { 
     user = checkUser.username; 
     app.get('/index', function (req, res) { 
     res.direct('/index'); 
     }); 
     socket.emit('uploadList', checkUser.total); 
    } 
    }); 
    socket.on('purchaseLog', function (data) { 
    var usercollection = db.users.find({ 
     username: user 
    }); 
    usercollection.purchase.save(data); 
    }); 
    socket.on('depositLog', function (data) { 
    var usercollection = db.users.find({ 
     username: user 
    }); 
    usercollection.deposit.save(data); 
    }); 
    socket.on('goLogout', function (data) { 
    app.get('/logout', function (req, res) { 
     req.logout(); 
     res.redirect('/'); 
    }); 
    }); 
    socket.on('goIndex', function (data) { 
    app.get('/index', function (req, res) { 
     res.redirect('/index'); 
    }); 
    }); 
    socket.on('goMonthly', function (data) { 
    app.get('/monthly', function (req, res) { 
     res.redirect('/monthly'); 
    }); 
    var monTot = db.users.find({ 
     username: user 
    }).monthlyTotal; 
    socket.emit('wentMonthly', monTot); 
    }); 
    socket.on('goYearly', function (data) { 
    app.get('/index', function (req, res) { 
     res.redirect('/index'); 
    }); 
    var yearTot = db.users.find({ 
     username: user 
    }).yearlyTotal; 
    socket.emit('wentYearly', yearTot); 
    }); 
    socket.on('registered', function (data) { 
    db.users.save(data); 
    app.get('/index', function (req, res) { 
     res.redirect('/index'); 
    }); 
    }); 
}); 
app.listen(3000); 
+0

之後您預計會發生什麼? – Trevor

+0

在我添加socket.io之前,我收到'node正在監聽端口3000' –

回答

3

您應該使用server.listen(port)代替app.listen(port)。使用app.listen()只會啓動您的Express應用程序,而您也希望socket.io搭載的HTTP服務器啓動。