【问题标题】:express js route cache clear (heroku)express js 路由缓存清除(heroku)
【发布时间】:2020-08-05 02:22:40
【问题描述】:

我正在使用 express js 并添加了新的 .pug 文件并在 routes/index.js 中给出了链接

但是当我尝试在浏览器 url 中访问时,它被重定向到(404 页面未找到)

我能知道如何清除路由缓存吗?在我以前的 nodejs 应用程序中,它有 pm2,所以我重新启动了它。但是这里没有pm2,我不知道该怎么办?。任何帮助将不胜感激。

注意:我已经尝试过这个link 但不起作用。

编辑

路由/index.js

// set up dependencies
var express = require('express');
var router = express.Router();
//
//
// Home Page
router.get('/', function(req, res, next) {
  res.render('home', {
    meta : {
      title: 'Home'
    }
  })
});
//
//
// About Page
router.get('/about', function(req, res, next) {
  res.render('about', {
    meta : {
      title: 'About Us'
    }
  })
});
//
//
//Partners Page
router.get('/partners', function(req, res, next) {
  res.render('partners', {
    meta : {
      title: 'Partners'
    }
  })
});

//
//
// export the module
module.exports = router;

/app.js

// import dependencies
var express = require('express'), // Used for routing https://expressjs.com/
path = require('path'), // allows path combinations https://www.npmjs.com/package/path
favicon = require('serve-favicon'), // serves the favicon from spec. folder https://www.npmjs.com/package/serve-favicon
logger = require('morgan'), // logs errors and output to terminal during node run https://www.npmjs.com/package/morgan
cookieParser = require('cookie-parser'), // allows cookie parsing https://www.npmjs.com/package/cookie-parser
bodyParser = require('body-parser'), // allos parsing of req.body in POST requests https://www.npmjs.com/package/body-parser
session = require('express-session'), // express session storage... just using in-memory sessions https://www.npmjs.com/package/express-session
pug = require('pug'), // pug/jade templating language https://www.npmjs.com/package/pug
timeout = require('connect-timeout'), // sets the timeout on the app before we show error https://www.npmjs.com/package/timeout
compression = require('compression'), // gzip compression for nodejs https://www.npmjs.com/package/compression
port = process.env.PORT || 3000;

// import local dependencies
require('dotenv').config(); // loads CONFIG variables from the .env top-level file

// app internal setup
var app = express(); // sets app to use express
app.set('views', path.join(__dirname, 'views')); // sets up view directory
app.set('view engine', 'pug'); // sets view engine to use pug
app.use(favicon(path.join(__dirname, 'public', 'images', 'icons', 'favicon.ico'))); // sets favicon path
app.use(logger('dev')); // uses morgan/logger to log output to terminal
app.use(bodyParser.json()); // uses bodyParser to parse req
app.use(bodyParser.urlencoded({ extended : true })); // Parses the text as URL encoded data, extended extends UTF chars
app.use(cookieParser('secret')); // sets the session secret
// set up session storage (we dont really need this for this app, no login)
app.use(session({
  secret: 'secret',
  resave: false,
  saveUninitialized: true,
  cookie: { secure: true }
}));
app.use(express.static(path.join(__dirname, 'public'))); // sets static file directory path
app.use(compression()); // uses compression
app.use(timeout('100s')); // sets timeout interval

// set up routing
var routes = require('./routes');
app.use('/', routes);

// error catching
// stacktrace in dev., dislay error page in prod
app.use(function (req, res, next) {
  var err = new Error('Not Found');
  err.status = 404;
  next(err);
});
if (app.get('env') === 'development') {
  app.use(function (err, req, res, next) {
    res.render('error', { 
      meta : {
        title: '404 Page Not Found'
      }
    })
  });
}
app.use(function (err, req, res, next) { // eslint-disable-line no-unused-vars
  res.status(err.status || 404);
  // log the error for heroku logs
  console.log('error', err);
  res.render('error', {});
});

// serve the app on PORT variable
// if using Heroku, this will be automatically set
var server = app.listen(port, function(err) {
  if (err) {
    console.log('App listening error ', err);
  } else {
    console.log('App running at ', port)
  }
});

应用文件结构

app
|_ .heroku
|_ .profile.d
|_ node_modules
|_ public
|_ routes
 |_ index.js
|_ views
 |_ home.pug
 |_ about.pug
 |_ partners.pug
|_ .gitignore
|_ app.js
|_ gulpfile.js
|_ package-lock.json
|_ package.json
|_ Procfile
|_ README.md
|_ service-worker.js

【问题讨论】:

  • 尝试向我们展示一些代码,以便我们更好地帮助您。
  • @AvivLo 感谢您的回复。我已经用我的代码编辑了这个问题。请仔细查看。
  • @AvivLo 以前我有主页,关于页面。现在新增合作伙伴页面。当我尝试访问我的合作伙伴页面时,它显示 404 错误。我已经在我的视图目录中创建了 partners.pug 文件。
  • 其他页面是否有效。
  • @AvivLo 会检查并通知您。

标签: express heroku caching routes pug


【解决方案1】:

最后朋友调试了代码,发现错误在partners.pug文件中。间距问题。所以我复制了另一个 pug 文件并重命名为 partners.pug 并链接到 routes/index.js 它然后工作。它可能对某人有所帮助。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-11-21
    • 1970-01-01
    • 2013-07-04
    • 2018-10-03
    • 1970-01-01
    • 2016-10-19
    • 1970-01-01
    相关资源
    最近更新 更多