如何设置关于路由器的快速模块?

How can I set express module about router?

目录

/config
  -routes.js
/public
  /views
    -index.pug
    /home
      -home.pug
-app.js

app.js

const express = require('express'),
      app     = express();

app.use(express.static(path.join(__dirname, 'public')));
app.set('views', path.join(__dirname, 'public/views')));
app.set('view engine', 'pug');

require(__dirname + '/config/routes.js')(app);

app.listen(port);

routes.js

module.exports = function (app) {
  const express = require('express'),
        router  = express.Router(),
        dir     = app.get('views');

  app.use('/', router);

  router.get('/', (req, res) => {
    res.render('index');
  });

  router.get('/home', (req, res) => {
    res.render('/home/home');
  });
};

当我尝试访问本地主机时,浏览器返回错误消息:port/home

错误:无法在视图目录 "C:\app\public\views"

中查找视图“/home/home”

下一个代码可以访问url。

router.get('/home', (req, res) => {
  res.render(dir + '/home/home');
});

如何设置我的快递? 我不想使用 dir 变量,我只想 /home/home.

问题在于以下代码

router.get('/home', (req, res) => {
     res.render(dir + '/home/home');
});

您不必在 res.render(); 中指定 dir / 开头的正斜杠应该被删除。由于您已经告诉 Expressjs 在 views 文件夹 中查找视图文件 app.set('views', path.join(__dirname, 'public/views'))); 将其更改为 res.render('home/home'); 现在它应该可以工作了。