NodeJS express автоматически созданное приложение, привязывающее к серверу - PullRequest
0 голосов
/ 04 июля 2018

Я создал экспресс-приложение в NodeJS, используя express --view=pug expressapp. Он создал файл 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 голосов
/ 04 июля 2018

Вы найдете его в каталоге bin/www

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...