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

Art*_*san 5 view express

源代码

app.js

var express = require('express');
var app = express();
var path = require('path');
var viewPath = path.join(__dirname, 'app/views');

app.set('views', viewPath);
app.set('view engine', 'jade');

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

app.listen(3000);
Run Code Online (Sandbox Code Playgroud)

文件夹结构

app
????views     
?        ????index.jade
????app.js
Run Code Online (Sandbox Code Playgroud)

浏览器出错

错误:无法index在views目录中查找视图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')错误设置什么都将是错误:无法index在视图目录中查找视图d:\Users\Admin\Documents\...\project\views(始终保持说明相同的路径)

我很抱歉router.get('/', ...),我实际上项目的文件不同,所以我在这里弄错了

Rox*_*Rox 8

尝试使用

app.set('views', path.join(__dirname, 'views'));
Run Code Online (Sandbox Code Playgroud)

你app.js在我的app文件夹中,所以我想

var viewPath = path.join(__dirname, 'app/views');

app.set('views', viewPath);
Run Code Online (Sandbox Code Playgroud)

将查看app/app/views/而不是app/views/因为__dirname
__dirname当前正在执行的脚本所在的目录.