#javascript #node.js #express #ejs
#javascript #node.js #экспресс #ejs
Вопрос:
Я получаю сообщение об ошибке —
Error: Failed to lookup view "location.ejs" in views directory
"e:NodeJs_ProjectgeolocationProjectviews"
at Function.render
Пожалуйста, помогите устранить ошибку.
server.js
var express = require('express');
var app = express();
const path = require('path');
//Middleware express. For session also.
var expressJwt = require('express-jwt');
var session = require('express-session');
var restify = require('restify');
var bodyParser = require('body-parser');
var mysql = require('mysql');
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({ extended: false }));
app.use(express.static ('public'));
var cors = require('cors') // Not required.
app.use(cors());
app.use(express.static('public'))
app.set('views',path.join(__dirname '/views'));
app.engine('ejs', require('ejs').renderFile);
app.set('view engine', 'ejs');
app.get('/', function(req, res) {
res.render('location.ejs');
});
app.listen(8080,(req,res)=>{
console.log('server running on port 8080')
})
Я даже пытался —
app.set(‘views’, __dirname ‘/views /’);
и
app.set(‘views’, __dirname ‘views’);
но безрезультатно
NodeJs_Project ..geolocationProject ..views ..location.ejs
Комментарии:
1. ошибка заключается в том, что в
location.ejs
вашейviews
папке нет файла с именем2. Файл присутствует. Я опубликую структуру файла в своем вопросе
3.
app.engine('ejs', require('ejs').renderFile);
измените наapp.engine('ejs', require('ejs'))
, и вы сможете просто использоватьres.render('location')
без.ejs
расширения4. Если я использую его — app.engine(‘ejs’, require(‘ejs’));. Я получаю ошибку — требуется функция обратного вызова.
5. возможно, измените импорт как
const ejs = require('ejs')
и затемapp.set('view engine', 'ejs')