最新消息: 电脑我帮您提供丰富的电脑知识,编程学习,软件下载,win7系统下载。

[用NodeJS刷新MySQL查询的页面404

IT培训 admin 57浏览 0评论

[用NodeJS刷新MySQL查询的页面404

因此,我有一个在Express上运行的网站,其中包含一些MySQL查询以加载相册。问题是,当我转到/ photo时,一切正常,但是如果刷新页面,则会得到404 Not Found的消息。如果我先转到/ photo,然后再转到另一个URL,然后返回/ photo,则相同。无论是prod还是dev,都会发生此问题,但只会在我的服务器上发生,而不会在本地。

这就是我得到的:

NotFoundError: Not Found
    at /home/vincdgfq/sachalebas/app.js:53:7
    at Layer.handle [as handle_request] (/home/vincdgfq/nodevenv/sachalebas/9/lib/node_modules/express/lib/router/layer.js:95:5)
    at trim_prefix (/home/vincdgfq/nodevenv/sachalebas/9/lib/node_modules/express/lib/router/index.js:317:13)
    at /home/vincdgfq/nodevenv/sachalebas/9/lib/node_modules/express/lib/router/index.js:284:7
    at Function.process_params (/home/vincdgfq/nodevenv/sachalebas/9/lib/node_modules/express/lib/router/index.js:335:12)
    at next (/home/vincdgfq/nodevenv/sachalebas/9/lib/node_modules/express/lib/router/index.js:275:10)
    at /home/vincdgfq/nodevenv/sachalebas/9/lib/node_modules/express/lib/router/index.js:635:15
    at next (/home/vincdgfq/nodevenv/sachalebas/9/lib/node_modules/express/lib/router/index.js:260:14)
    at Function.handle (/home/vincdgfq/nodevenv/sachalebas/9/lib/node_modules/express/lib/router/index.js:174:3)
    at router (/home/vincdgfq/nodevenv/sachalebas/9/lib/node_modules/express/lib/router/index.js:47:12)

如果删除所有错误处理程序,我只会得到一个

CANNOT GET /501.shtml

网站可以在这里找到:

预先感谢任何人知道我应该在哪里寻找该错误,我完全迷失了。

编辑:

var createError = require('http-errors');
var express = require('express');
var path = require('path');
var cookieParser = require('cookie-parser');
var logger = require('morgan');
var bodyParser = require('body-parser');
var session = require('express-session');

require('./controllers/userController');

const oneYear = 60 * 1000 * 60 * 24 * 7;
const xssFilter = require('x-xss-protection');
const noSniff = require('dont-sniff-mimetype');
require('dotenv').config({ path:"process.env"});
const compression = require('compression');
var indexRouter = require('./routes/index');



var app = express();
app.use(xssFilter());
app.use(noSniff());
app.use(compression());
// view engine setup
app.set('views', path.join(__dirname, 'views'));
app.set('view engine', 'pug');
app.use(express.static(__dirname + '/public', {maxAge: oneYear, dotfiles:'allow'}));
app.use(logger('dev'));
app.use(express.json());
app.use(express.urlencoded({
  extended: false
}));
app.use(cookieParser());

app.use(bodyParser.json());
app.use(bodyParser.urlencoded({
  extended: true
}));

app.use(session({
  secret: process.env.SECRET,
  resave: false,
  saveUninitialized: false,
  maxAge: 200000
}));



app.use('/', indexRouter);

// 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');
});



module.exports = app;

这是我的app.js

回答如下:

您的问题不在后端。

我已经多次执行curl请求,并且得到相同的输出:

这意味着在客户端出现竞争条件。

为了避免尝试包装所有代码:https://sachalebas/ressources/js/script.js

内部:

window.onload = function() {
  // here goes all js code from ressources/js/script.js
}

[用NodeJS刷新MySQL查询的页面404

因此,我有一个在Express上运行的网站,其中包含一些MySQL查询以加载相册。问题是,当我转到/ photo时,一切正常,但是如果刷新页面,则会得到404 Not Found的消息。如果我先转到/ photo,然后再转到另一个URL,然后返回/ photo,则相同。无论是prod还是dev,都会发生此问题,但只会在我的服务器上发生,而不会在本地。

这就是我得到的:

NotFoundError: Not Found
    at /home/vincdgfq/sachalebas/app.js:53:7
    at Layer.handle [as handle_request] (/home/vincdgfq/nodevenv/sachalebas/9/lib/node_modules/express/lib/router/layer.js:95:5)
    at trim_prefix (/home/vincdgfq/nodevenv/sachalebas/9/lib/node_modules/express/lib/router/index.js:317:13)
    at /home/vincdgfq/nodevenv/sachalebas/9/lib/node_modules/express/lib/router/index.js:284:7
    at Function.process_params (/home/vincdgfq/nodevenv/sachalebas/9/lib/node_modules/express/lib/router/index.js:335:12)
    at next (/home/vincdgfq/nodevenv/sachalebas/9/lib/node_modules/express/lib/router/index.js:275:10)
    at /home/vincdgfq/nodevenv/sachalebas/9/lib/node_modules/express/lib/router/index.js:635:15
    at next (/home/vincdgfq/nodevenv/sachalebas/9/lib/node_modules/express/lib/router/index.js:260:14)
    at Function.handle (/home/vincdgfq/nodevenv/sachalebas/9/lib/node_modules/express/lib/router/index.js:174:3)
    at router (/home/vincdgfq/nodevenv/sachalebas/9/lib/node_modules/express/lib/router/index.js:47:12)

如果删除所有错误处理程序,我只会得到一个

CANNOT GET /501.shtml

网站可以在这里找到:

预先感谢任何人知道我应该在哪里寻找该错误,我完全迷失了。

编辑:

var createError = require('http-errors');
var express = require('express');
var path = require('path');
var cookieParser = require('cookie-parser');
var logger = require('morgan');
var bodyParser = require('body-parser');
var session = require('express-session');

require('./controllers/userController');

const oneYear = 60 * 1000 * 60 * 24 * 7;
const xssFilter = require('x-xss-protection');
const noSniff = require('dont-sniff-mimetype');
require('dotenv').config({ path:"process.env"});
const compression = require('compression');
var indexRouter = require('./routes/index');



var app = express();
app.use(xssFilter());
app.use(noSniff());
app.use(compression());
// view engine setup
app.set('views', path.join(__dirname, 'views'));
app.set('view engine', 'pug');
app.use(express.static(__dirname + '/public', {maxAge: oneYear, dotfiles:'allow'}));
app.use(logger('dev'));
app.use(express.json());
app.use(express.urlencoded({
  extended: false
}));
app.use(cookieParser());

app.use(bodyParser.json());
app.use(bodyParser.urlencoded({
  extended: true
}));

app.use(session({
  secret: process.env.SECRET,
  resave: false,
  saveUninitialized: false,
  maxAge: 200000
}));



app.use('/', indexRouter);

// 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');
});



module.exports = app;

这是我的app.js

回答如下:

您的问题不在后端。

我已经多次执行curl请求,并且得到相同的输出:

这意味着在客户端出现竞争条件。

为了避免尝试包装所有代码:https://sachalebas/ressources/js/script.js

内部:

window.onload = function() {
  // here goes all js code from ressources/js/script.js
}

与本文相关的文章

发布评论

评论列表 (0)

  1. 暂无评论