1

这是我的代码

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。

我错过了什么?谢谢!

4

2 回答 2

2

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

于 2012-10-31T10:05:36.203 回答
2

FWIW:我在相邻目录(即根/服务器、根/客户端)中有我的视图,并且遇到了此处描述的相同问题。我做的与 OP 不同的一件事是,当爬出服务器目录时,在我的 app.set 中添加一个“/”;IE:

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

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

高温高压

(非常感谢 OP 和 Pickels!)

于 2013-06-04T21:57:27.683 回答