错误:无法在express + jade中查找视图

时间:2012-10-29 17:01:11

标签: javascript express pug

这是我的代码

var express = require('express');
var app = express();
app.set('view engine', 'jade');
app.set('views', __dirname + '/views');

exports.makeObservable = function(state, path, cb) {
    app.get(path, function(req, res){
        res.render('observable.jade', state);
        //call callback with new user
        cb(req);
    });

    app.listen('9999'); 
}

每当我尝试到达path时,我都会收到以下错误:  Error: Failed to lookup view "observable.jade"。我还尝试在没有observable的情况下传递.jade,但它也会出现同样的错误。我的/views文件夹中有observable.jade和layout.jade。

我错过了什么?谢谢!

2 个答案:

答案 0 :(得分:2)

由于评论中的建议,我终于解决了这个问题。首先,我检查了执行脚本的目录是否包含我放置/views文件的目录.jade。我一开始无法解决问题,因为我无法确定执行此脚本的位置,所以我在console.log(view)的第493行添加/express/lib/application.js。它打印出包含执行脚本的根的view对象,因此我移动了/views文件夹,一切正常。

答案 1 :(得分:2)

FWIW:我在相邻目录(即root / server,root / client)中有我的观点,并且遇到了与此处描述的相同的问题。我做的与OP不同的一件事是在登出服务器目录时在我的app.set中添加一个'/';即:

这个:app.set('views',__ dirname +' / ../ client /');

而不是:app.set('views',__ dirname +'.. / client /');

HTH

(感谢OP和Pickels的TON!)