node js - 网页有时会引发404错误

时间:2018-03-20 07:14:27

标签: node.js http-status-code-404

我的网站有时会引发404错误,即使我的索引文件中有正确的路径。 当发生404错误时,我重新加载页面并正确上传页面。 即使通过重新加载页面成功上传页面,我认为它不稳定... 你有什么主意吗?我不知道为什么会这样。

这是我对主页的路由和处理程序! 我使用vhost连接域

app1.get('/',(req,res)=>{
  var arr = poplist;
  var type = 'recommended';
  var session = null;
  if(req.session.user){
    session = req.session;
  }
  if (req.session.series_id){ /*5*/
    var search_car = req.session.series_id;
    arr.unshift({'id':req.session.series_id,'series_name':req.session.manu_name + ' ' + req.session.series_name});
    type = 'mycar';
  } else {
    var search_car = recommend_car(arr).id; /*4*/
  }
  get_recommend_container(arr,function(err,recommend_container){
    if (err) { res.send('err') }
    else {
      get_best_reviews_container(function(err,best_reviews_container){
        if (err) { res.send('err') }
        else {
          /*search_car for query in menubar*/
          res.render('main', {'type':type,'poplist':poplist,'recommend_container':recommend_container,'best_reviews_container':best_reviews_container,'search_car':search_car,'session':session});
        }
      });
    }
  });
});

...

app.use(vhost('mysite.com', app1));

app.use(function(req, res, next) {
  res.status(404).send('Sorry cannot find the page!');
});

app.listen(8000,'myip',function(){
  console.log("Connected to 8000 port!..")
});

1 个答案:

答案 0 :(得分:0)

您明确定义了“404中间件”:

app.use(function(req, res, next) {
  res.status(404).send('Sorry cannot find the page!');
});

这意味着每当您的应用收到任何请求时,它都会执行将发送回404的中间件。

文档:https://expressjs.com/en/guide/using-middleware.html

  

此示例显示没有装载路径的中间件功能。该   每次应用收到请求时都会执行该功能。

var app = express()

app.use(function (req, res, next) {
  console.log('Time:', Date.now())
  next()
})