在Express.js中设置默认视图路径 源代码

在Express.js中设置默认视图路径 源代码,express,view,Express,View,app.js 文件夹结构 浏览器中的错误 错误:无法在视图目录d:\Users\Admin\Documents\…\project\views 问题: 我想通过将视图文件放置在app/views/*.jade中来构建我的应用程序,但我目前无法使用app.set('views',…)使其工作,但它不工作 console.log(viewPath)显示d:\Users\Admin\Documents\…\project\app\views 我也尝试过,例如,app.set('views','xxx'

app.js

文件夹结构 浏览器中的错误 错误:无法在视图目录
d:\Users\Admin\Documents\…\project\views

问题: 我想通过将视图文件放置在
app/views/*.jade
中来构建我的应用程序,但我目前无法使用
app.set('views',…)
使其工作,但它不工作

console.log(viewPath)
显示
d:\Users\Admin\Documents\…\project\app\views

我也尝试过,例如,
app.set('views','xxx')
,但错误仍然出现在同一条路径上,似乎从未调用过
app.set()
,这里出了什么问题?请指导

谢谢

编辑 我使用
app.set('views','xxx')
设置什么并不重要,错误总是错误的:无法在视图目录
d:\Users\Admin\Documents\…\project\views
中查找视图
索引
(始终使用相同的路径)

我对路由器感到非常抱歉。获取(“/”,…),实际上我的项目的文件是不同的,所以我在这里犯了错误

尝试使用

app.set('views',path.join('views');
你的
app.js
在你的
app
文件夹中,所以我想

var viewPath=path.join(uu dirname,'app/views');
应用程序集(“视图”,视图路径);
将查看
app/app/views/
而不是
app/views/
,因为
\uu dirname


\uuu dirname
是当前正在执行的脚本所在的目录。

正如Roxinagi所提到的,您应该使用app.get()。 其他一切似乎都很好

app.get('/', function(req, res) {
   res.render('index', { title: 'Home Page' } );
});

实际上,我的项目中有分离的文件,因此在分离的路由文件中有
app.get('/',…)
,然后要求它与
app.use()一起使用

我真的不知道,但是在将
app.get('/',…)
移动到
app.js
之后,问题就解决了


谢谢大家

我知道为时已晚,但可能会帮助有同样问题的人。如果将渲染代码放在单独的文件中,则需要使用
express.Router
而不是
app.get
。比如说,

const express = require('express');
const router = express.Router();

router.get('/', (req, res) => {
  res.render('index', {title: 'Hey', message: 'Hello there!'});
});

module.exports = router;
然后在你的
app.js

const router = require('./app/routes/routerName');
app.use('/', router);

我的
app.js
不在
app
文件夹内,谢谢,您键入了
router.get
而不是
app.get
,或者您没有定义
router
,请添加一些解释
const express = require('express');
const router = express.Router();

router.get('/', (req, res) => {
  res.render('index', {title: 'Hey', message: 'Hello there!'});
});

module.exports = router;
const router = require('./app/routes/routerName');
app.use('/', router);
const path = require('path')
app.set('views', path.join(__dirname, 'app/views/'))
app.set('view engine','jade');