NodeJS Express自动将应用程序绑定到服务器

时间:2018-07-04 11:54:59

标签: node.js express socket.io

我使用express --view=pug expressapp在NodeJS中创建了一个快速应用程序。它创建了一个app.js文件

app.js

var createError = require('http-errors');
...

var app = express();

// view engine setup
app.set('views', path.join(__dirname, 'views'));
app.set('view engine', 'pug');

app.use(logger('dev'));
app.use(express.json());
app.use(express.urlencoded({ extended: false }));
app.use(cookieParser());
app.use(express.static(path.join(__dirname, 'public')));

app.use('/', indexRouter);
app.use('/users', usersRouter);

// catch 404 and forward to error handler
app.use(function(req, res, next) {
  next(createError(404));
});

// error handler
app.use(function(err, req, res, next) {
  // set locals, only providing error in development
  res.locals.message = err.message;
  res.locals.error = req.app.get('env') === 'development' ? err : {};

  // render the error page
  res.status(err.status || 500);
  res.render('error');
});

//socket setup
var socket = require('socket.io');

var io = socket(app);
io.on('connection', function(socket) {
    console.log('made socket connection')
})

module.exports = app;

最后,我尝试将socket.io绑定到应用,但它希望像这样绑定到服务器

var server = app.listen(3000, function() {

});

//socket setup
var socket = require('socket.io');

var io = socket(server);

我也使用nodemon,所以我使用nodemon expressapp运行该应用程序,并且该应用程序在端口3000上运行。但是,我找不到自动生成的快速文件在哪里设置了服务器。因为如果我这样尝试

//socket setup
var socket = require('socket.io');

var server = app.listen(3000, function() {

});

var io = socket(server);

我收到一个错误,指出端口3000已被使用(本身),我将其更改为4000,并且可以正常工作。 不理想,如果您知道如何与端口3000连接,将不胜感激。

1 个答案:

答案 0 :(得分:1)

您将在目录bin/www下找到它