2017-04-18 10 views
1

nodejs expressとmongodbでWebページを開発しようとしています。私はthis GitHub pageのコードを辿って分析しており、ウェブページを開こうとしているときにエラーが発生しています。nodejs expressでWebページを開こうとしたときにエラーが発生しました。

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のすべてのステートメントのコメントを外して実行してWebページを開くと、次の出力が得られます。

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) 

親切に私を助けてください。

+0

viewsフォルダを確認してください。そこにerror.hbsファイルがありますか? – sailesh

+0

@sailesh error.hbsファイルは、ビューディレクトリの下のレイアウトディレクトリにあります。 –

+0

ビューディレクトリ内にあるはずです。 – sailesh

答えて

0
app.set('views', path.join(__dirname, 'views')); 

あなたのアプリケーションビューにビューディレクトリが指定されています。 res.renderはビューのサブディレクトリではなく、viewsディレクトリ内のファイルを探します。 error.hbsをビュー/レイアウトからビュー/にコピーして試してみてください。

+0

ありがとうございます...今、ウェブページを開くことができます –

関連する問題