首页 > 解决方案 > NodeJS express 自动创建的应用程序绑定到服务器

问题描述

我在 NodeJS 中使用express --view=pug expressapp. 它创建了一个 app.js 文件

应用程序.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将不胜感激。

标签: node.jsexpresssocket.io

解决方案


你会在目录下找到它bin/www


推荐阅读