Express.js неожиданный «GET» для «/ JSON / версия»

1

Я новичок в Express, но я продолжаю получать ошибку 404, потому что что-то делает запрос GET на "/json/version". Он проходит через первое приложение app.use('/') и добавляет данные сеанса, затем игнорирует два маршрутизатора, а затем запускает обработку ошибок 404. Кто-нибудь знает, откуда это может произойти? Это держит мой проект, и я очень расстроен.

Я нашел кого-то с той же проблемой здесь, но ничего не было очень полезно (насколько я могу судить). Большая часть этого приложения генерируется из express-generator, причем только сеанс добавляется мной, но я не могу найти документацию из express-session которой говорится, что это ожидаемое поведение. Ниже мой код.

// Package requirements
let createError = require('http-errors'),
    express = require('express'),
    session = require('express-session'),
    path = require('path'),
    cookieParser = require('cookie-parser'),
    logger = require('morgan');

// Local requirements
let indexRouter = require('./routes/index'),
    usersRouter = require('./routes/users');

// App definition
let app = express();

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

// Session data
app.use(session({
    secret: 'Super Secret',
}));

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('/', (req, res, next) => {
    req.session.id = 1;
    next();
});
app.use('/', indexRouter);
app.use('/', 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) {
  // 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');
});

// Specifies Node.js port
app.listen(3000, function() {
  console.log('Listening on port 3000')
});

module.exports = app;

Заранее спасибо!

  • 0
    ПОМОГИТЕ! Кен, ты когда-нибудь находил решение для этого? Просьба поделиться, я трачу дни на это. Все работало в течение долгого времени, и тогда без причины, что я могу понять, эта упорная ошибка прибыла.
  • 1
    Я использовал следующее, чтобы поймать это. Я видел несколько других проектов, которые тоже делают это. Не уверен, откуда именно. app.get(['/json*', '/favicon.ico'], function(req, res) { res.status(204); });
Теги:
express
routing

1 ответ

2

Был рассмотрен в этом выпуске.

Нажмите "Настроить" в chrome://inspect и удалите порт 3000

Ещё вопросы

Сообщество Overcoder
Наверх
Меню