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

时间:2018-01-22 02:22:32

标签: javascript node.js http express router

directoies

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);

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

routes.js

router.get('/home', (req, res) => {
  res.render(dir + '/home/home');
});
当我尝试访问localhost:port / home

时,

浏览器返回了错误消息

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

下一个代码可以访问url。

magician_names = ['jim', 'kaitlyn', 'nick', 'paul', 'kyle']
magician_names = ["The Great {}".format(i) for i in magician_names]

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

1 个答案:

答案 0 :(得分:0)

问题在于以下代码

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');现在它应该可以正常工作。