【发布时间】:2017-09-14 19:21:15
【问题描述】:
我正在尝试使用 nodejs express 和 mongodb 开发一个网页。我已经跟踪并分析了来自 this GitHub page 的代码,但在尝试打开网页时遇到了错误。
取消注释app.js 中的以下代码部分并注释app.js 文件中代码的其余部分(未注释的代码部分):
var express = require('express');
var path = require('path');
var favicon = require('serve-favicon');
var logger = require('morgan');
var cookieParser = require('cookie-parser');
var bodyParser = require('body-parser');
var hbs = require('express-handlebars');
var routes = require('./routes/index');
var app = express();
// view engine setup
app.engine('hbs', hbs({extname: 'hbs', defaultLayout: 'layout', layoutsDir: __dirname + '/views/layouts/'}));
app.set('views', path.join(__dirname, 'views'));
app.set('view engine', 'hbs');
得到如下输出:
Cannot GET /
取消注释app.js中的所有语句并执行打开网页,得到如下输出:
Error: Failed to lookup view "error" in views directory "C:\Users\web\first-1\views"
at EventEmitter.render (C:\Users\web\first-1\node_modules\express\lib\application.js:580:17)
at ServerResponse.render (C:\Users\web\first-1\node_modules\express\lib\response.js:966:7)
at C:\Users\web\first-1\app.js:53:7
at Layer.handle_error (C:\Users\web\first-1\node_modules\express\lib\router\layer.js:71:5)
at trim_prefix (C:\Users\web\first-1\node_modules\express\lib\router\index.js:315:13)
at C:\Users\web\first-1\node_modules\express\lib\router\index.js:284:7
at Function.process_params (C:\Users\web\first-1\node_modules\express\lib\router\index.js:335:12)
at IncomingMessage.next (C:\Users\web\first-1\node_modules\express\lib\router\index.js:275:10)
at done (C:\Users\web\first-1\node_modules\express\lib\response.js:961:25)
at EventEmitter.render (C:\Users\web\first-1\node_modules\express\lib\application.js:582:14)
请帮我解决这个问题。
【问题讨论】:
-
检查您的视图文件夹。找到里面的error.hbs文件了吗?
-
@sailesh error.hbs 文件存在于views目录下的layouts目录中
-
应该在views目录下。
-
@sailesh 感谢您的回复....layouts 目录存在于views 目录下...让我检查一下...
-
error.hbs 应该在 views 目录中。不在布局目录中。这里应该是views/error.hbs
标签: javascript html node.js reactjs express