【问题标题】:Express.js unexpected 'GET' to '/json/version'Express.js 意外 'GET' 到 '/json/version'
【发布时间】:2019-01-09 00:34:35
【问题描述】:

我是 Express 的新手,但我不断收到 404 错误,因为 something 正在向“/json/version”发出 GET 请求。它通过第一个app.use('/')并添加会话数据,然后忽略两个路由器,然后触发404错误处理。有谁知道它可能来自哪里?它阻碍了我的项目,我很沮丧。

我发现有人遇到了同样的问题here,但没有任何帮助(据我所知)。这个应用程序的大部分是从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;

提前致谢!

【问题讨论】:

  • 帮助!肯,你有没有找到解决办法?请分享,我花了几天时间。一切都工作了很长时间,然后我无缘无故地理解了这个顽固的错误。
  • 我用下面的方法来捕捉它。我已经看到其他一些项目也这样做了。不确定它的确切来源。 app.get(['/json*', '/favicon.ico'], function(req, res) { res.status(204); });

标签: javascript node.js express routing


【解决方案1】:

已在此issue 中解决。

点击chrome://inspect中的“配置”,删除3000端口

【讨论】:

    猜你喜欢
    • 2018-04-03
    • 2016-12-09
    • 2013-05-28
    • 2016-11-03
    • 2019-07-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多