Javascript 为什么赢了';我的express.js不能运行吗?

Javascript 为什么赢了';我的express.js不能运行吗?,javascript,node.js,express,socket.io,mongojs,Javascript,Node.js,Express,Socket.io,Mongojs,我有一个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 = mo

我有一个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);

您应该使用
server.listen(端口)
而不是
app.listen(端口)
。使用
app.listen()
只会启动您的Express应用程序,同时您还希望
socket.io
承载的HTTP服务器启动。

您应该使用
server.listen(端口)
而不是
app.listen(端口)
。使用
app.listen()
只会启动您的Express应用程序,同时,您还希望启动搭载socket.io的HTTP服务器。

之后会发生什么?在我添加socket.io之前,I receive
节点正在侦听端口3000
之后会发生什么?在我添加socket.io之前,I receive
节点正在侦听端口3000