javascript 基本 Express.js 应用程序中的“无法查找视图”

声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow 原文地址: http://stackoverflow.com/questions/21969968/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me): StackOverFlow

提示:将鼠标放在中文语句上可以显示对应的英文。显示中英文
时间:2020-10-27 22:07:05  来源:igfitidea点击:

"Failed to lookup view" in basic Express.js application

javascriptnode.jsexpresspug

提问by Jakub

I'm trying to learn Express.js, so I created simple Express app. The app.js looks as follows:

我正在尝试学习 Express.js,所以我创建了简单的 Express 应用程序。app.js 如下所示:

var express = require('express'); 
var app = express();

app.configure(function(){
    app.set('view engine', 'jade'); 
    app.set('views', __dirname);
});

app.get('/', function(req, res){ 
    res.render("index");
});

app.listen(8080);

My folders structures looks following: enter image description here

我的文件夹结构如下: 在此处输入图片说明

However, when I point my browser to http://localhost:8080I'm getting the following output:

但是,当我将浏览器指向我时,会http://localhost:8080得到以下输出:

Error: Failed to lookup view "index"
at Function.app.render (/Users/kuba/Documents/ws_javascript/express_spike/node_modules/express/lib/application.js:492:17)
at ServerResponse.res.render (/Users/kuba/Documents/ws_javascript/express_spike/node_modules/express/lib/response.js:721:7)
at /Users/kuba/Documents/ws_javascript/express_spike/app.js:10:6
at callbacks (/Users/kuba/Documents/ws_javascript/express_spike/node_modules/express/lib/router/index.js:161:37)
at param (/Users/kuba/Documents/ws_javascript/express_spike/node_modules/express/lib/router/index.js:135:11)
at pass (/Users/kuba/Documents/ws_javascript/express_spike/node_modules/express/lib/router/index.js:142:5)
at Router._dispatch (/Users/kuba/Documents/ws_javascript/express_spike/node_modules/express/lib/router/index.js:170:5)
at Object.router (/Users/kuba/Documents/ws_javascript/express_spike/node_modules/express/lib/router/index.js:33:10)
at next (/Users/kuba/Documents/ws_javascript/express_spike/node_modules/express/node_modules/connect/lib/proto.js:199:15)
at Object.expressInit [as handle] (/Users/kuba/Documents/ws_javascript/express_spike/node_modules/express/lib/middleware.js:31:5)

I've checked and the permissions for the files are ok. Any ideas why express cannot find my index.jade file?

我已经检查过,文件的权限没问题。为什么 express 找不到我的 index.jade 文件的任何想法?

回答by Pedro Nasser

Try this code:

试试这个代码:

var express = require('express');
var app = express();

app.use(express.logger('dev'))

app.set('views', __dirname+'/views');
app.set('view engine', 'jade');

app.get('/', function(req, res){
    res.render("index");
});

app.listen(8080);

Then place your index.jadeinside a folder called views.

然后将您的内容index.jade放在一个名为views.

And make sure you have jadeinside your node_modulesfolder

并确保您jadenode_modules文件夹中有