0

This question has been asked before, but I can't still figure out what I'm doing wrong. It al works fine on my localhost, but as soon as I deploy it it will give me this error.

Error: Failed to lookup view "index" in views directory "./views"

I've tried different methods like:
app.set('views', './views');
and
app.set('views', 'views');

Does anyone have some advice on what to try next?

This is my folder structure: enter image description here These are my dependencies:

"body-parser": "^1.19.0",
"ejs": "^3.0.1",
"express": "^4.17.1",
"google-spreadsheet": "^2.0.8"

This is on the first 6 lines of my server.js

var express = require('express');
var bodyParser = require('body-parser');
var path = require('path'); 
var http = require('http');
var app = express();
var server = http.createServer(app);

Here is how I set the view:

app.set('views', path.join(__dirname, 'views'));
app.set('view engine', 'ejs');

And here's the rendering:

app.get('/', function(req, res){
    doc.useServiceAccountAuth(creds, function (err) {
        doc.getRows(1, function (err, rows) {
            rows.push(exp);
            console.log("check");
            res.render('index', {data: rows});
        });  
    }); 
});
philiph
  • 31
  • 8
  • Please tell where is defined port number and listen server ? – Mahesh Bhatnagar Jan 03 '20 at 17:48
  • I found a different solution without views. I didn't need them after all. I'm just using this now and it works fine: res.sendFile(path.join(__dirname + '/assets/index.html')); – philiph Jan 06 '20 at 13:22

0 Answers0