2017-11-12 12 views
0

他のさまざまなスレッドを試してみましたが、どれも役に立たなかった。 私はExpressアプリケーションを使用してejsファイルをレンダリングしようとしています。しかし、ポートでリッスンすると、次のエラーが表示されます。コードのエラー:ビュー "インデックス"を検索できません

エラー

Error: Failed to lookup view "login" 
at Function.app.render (C:\Users\darsh\Desktop\Semester_1\SSDI\Sprint 3\workspace\node_modules\express\lib\application.js:495:17) 
at ServerResponse.res.render (C:\Users\darsh\Desktop\Semester_1\SSDI\Sprint 3\workspace\node_modules\express\lib\response.js:756:7) 
at C:\Users\darsh\Desktop\Semester_1\SSDI\Sprint 3\workspace\server.js:150:13 
at callbacks (C:\Users\darsh\Desktop\Semester_1\SSDI\Sprint 3\workspace\node_modules\express\lib\router\index.js:161:37) 
at param (C:\Users\darsh\Desktop\Semester_1\SSDI\Sprint 3\workspace\node_modules\express\lib\router\index.js:135:11) 
at pass (C:\Users\darsh\Desktop\Semester_1\SSDI\Sprint 3\workspace\node_modules\express\lib\router\index.js:142:5) 
at Router._dispatch (C:\Users\darsh\Desktop\Semester_1\SSDI\Sprint 3\workspace\node_modules\express\lib\router\index.js:170:5) 
at Object.router (C:\Users\darsh\Desktop\Semester_1\SSDI\Sprint 3\workspace\node_modules\express\lib\router\index.js:33:10) 
at next (C:\Users\darsh\Desktop\Semester_1\SSDI\Sprint 3\workspace\node_modules\express\node_modules\connect\lib\proto.js:190:15) 
at Object.handle (C:\Users\darsh\Desktop\Semester_1\SSDI\Sprint 3\workspace\node_modules\connect-flash\lib\flash.js:21:5) 
at next (C:\Users\darsh\Desktop\Semester_1\SSDI\Sprint 3\workspace\node_modules\express\node_modules\connect\lib\proto.js:190:15) 
at SessionStrategy.strategy.pass (C:\Users\darsh\Desktop\Semester_1\SSDI\Sprint 3\workspace\node_modules\passport\lib\middleware\authenticate.js:338:9) 
at SessionStrategy.authenticate (C:\Users\darsh\Desktop\Semester_1\SSDI\Sprint 3\workspace\node_modules\passport\lib\strategies\session.js:75:10) 
at attempt (C:\Users\darsh\Desktop\Semester_1\SSDI\Sprint 3\workspace\node_modules\passport\lib\middleware\authenticate.js:361:16) 
at Object.authenticate [as handle] (C:\Users\darsh\Desktop\Semester_1\SSDI\Sprint 3\workspace\node_modules\passport\lib\middleware\authenticate.js:362:7) 
at next (C:\Users\darsh\Desktop\Semester_1\SSDI\Sprint 3\workspace\node_modules\express\node_modules\connect\lib\proto.js:190:15) 

マイファイル構造

- Workspace 
    - client 
     - css 
     - js 
    - views 
     - login.ejs 
     - index.ejs 
    - server.js 

小スニペット:

var express = require('express'); 
var app = express(); 
var server = http.createServer(app); 
app.set('views', path.resolve(__dirname, '/views')); 
app.set('view engine', 'ejs'); // set up ejs for templating 
app.listen(8080); 

    app.get('/', function(req, res) { 
     res.render('login.ejs'); // load the login.ejs file 
    }); 


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

答えて

0

使用path.join代わりのpath.resolve、 path.resolveは/viewsになりますので。

path.join(__ dirname + '/ views')を使用してみてください。 const path = require( 'path')を付けることを忘れないでください。

+0

まだ同じ問題に直面しています。 –

0

これを使用できます。

var express = require('express') 
var http = require('http') 
var app = express() 
var server = http.createServer(app) 
app.set('view engine', 'ejs') 
app.listen(8080) 

app.get('/', (req, res) => { 
    res.render('login') 
}) 
関連する問題