Сегодня появилась странная ошибка. Я получаю сообщение об ошибке с res.render, но я использовал его довольно часто, и я как-то знаю, как его использовать.Не удалось просмотреть «...» в каталоге представлений «...»
contact.js:
router.post('/', function (req, res, next) {
if (!validator.isEmail(req.body.email)) {
req.flash('error', '...');
return res.render('contact', {
message: req.flash()
})
}
contactmessages.create({
firstname: req.body.firstname,
lastname: req.body.lastname,
email: req.body.email,
message: req.body.message,
subject: req.body.subject
}).then(res.render('responseviews/dafaultInfoLayout', {
user: req.user,
info: '...'
})).catch(function (err) {
res.render('responseviews/noResponseDB');
});
});
contact.jade:
extends layout
block content
ul.breadcrumb
each breadcrumb in breadcrumbs
li: a(href="#{breadcrumb.url}") #{breadcrumb.name}
if(message)
span.label.label-danger #{message.error}
.container
.row
.col-md-12
form.form-horizontal(method='post').col-md-10
fieldset
legend.text-center.header Kontaktformular
.form-group
span.col-md-1.col-md-offset-2.text-center
i.fa.fa-user.bigicon
.col-md-8
if(user)
input#fname.form-control(name='firstname', type='text', value=user.firstname)
else
input#fname.form-control(name='firstname', type='text', placeholder='Vorname')
.form-group
span.col-md-1.col-md-offset-2.text-center
i.fa.fa-user.bigicon
.col-md-8
if(user)
input#lname.form-control(name='lastname', type='text', value=user.lastname)
else
input#lname.form-control(name='lastname', type='text', placeholder='Nachname')
.form-group
span.col-md-1.col-md-offset-2.text-center
i.fa.fa-envelope-o.bigicon
.col-md-8
if(user)
input#email.form-control(name='email', type='text', value=user.email)
else
input#email.form-control(name='email', type='text', placeholder='Email Adresse')
.form-group
span.col-md-1.col-md-offset-2.text-center
i.fa.fa-envelope-o.bigicon
.col-md-8
input#email.form-control(name='subject', type='text', placeholder='Betreff')
.form-group
span.col-md-1.col-md-offset-2.text-center
i.fa.fa-pencil-square-o.bigicon
.col-md-8
textarea#message.form-control(name='message', placeholder='Schreibe hier, was du ' +
'uns mitteilen oder fragen willst', rows='7')
.form-group
.col-md-12
button.btn.btn-primary.btn-lg.col-md-offset-6(type='submit') Absenden
responseviews/defaultInfoLayout.jade:
extends ../layout
block content
h1 #{info}
Ошибка я получил:
Error: Failed to lookup view "responseviews/dafaultInfoLayout" in views directory "/home/muecahit/Schreibtisch/ltebjade/lteb/app/views" at EventEmitter.render (/home/muecahit/Schreibtisch/ltebjade/lteb/node_modules/express/lib/application.js:579:17) at ServerResponse.render (/home/muecahit/Schreibtisch/ltebjade/lteb/node_modules/express/lib/response.js:961:7) at /home/muecahit/Schreibtisch/ltebjade/lteb/app/routes/contact.js:30:14 at Layer.handle [as handle_request] (/home/muecahit/Schreibtisch/ltebjade/lteb/node_modules/express/lib/router/layer.js:95:5) at next (/home/muecahit/Schreibtisch/ltebjade/lteb/node_modules/express/lib/router/route.js:131:13) at Route.dispatch (/home/muecahit/Schreibtisch/ltebjade/lteb/node_modules/express/lib/router/route.js:112:3) at Layer.handle [as handle_request] (/home/muecahit/Schreibtisch/ltebjade/lteb/node_modules/express/lib/router/layer.js:95:5) at /home/muecahit/Schreibtisch/ltebjade/lteb/node_modules/express/lib/router/index.js:277:22 at Function.process_params (/home/muecahit/Schreibtisch/ltebjade/lteb/node_modules/express/lib/router/index.js:330:12) at next (/home/muecahit/Schreibtisch/ltebjade/lteb/node_modules/express/lib/router/index.js:271:10) at Function.handle (/home/muecahit/Schreibtisch/ltebjade/lteb/node_modules/express/lib/router/index.js:176:3) at router (/home/muecahit/Schreibtisch/ltebjade/lteb/node_modules/express/lib/router/index.js:46:12) at Layer.handle [as handle_request] (/home/muecahit/Schreibtisch/ltebjade/lteb/node_modules/express/lib/router/layer.js:95:5) at trim_prefix (/home/muecahit/Schreibtisch/ltebjade/lteb/node_modules/express/lib/router/index.js:312:13) at /home/muecahit/Schreibtisch/ltebjade/lteb/node_modules/express/lib/router/index.js:280:7 at Function.process_params (/home/muecahit/Schreibtisch/ltebjade/lteb/node_modules/express/lib/router/index.js:330:12)
Это то, что мои файлы выглядеть следующим образом:
Вы указали 'app.engine' и' app.set ('view engine', 'jade'); '? – Louy
@Muco Так ли файл '/ home/muecahit/Schreibtisch/ltebjade/lteb/app/views/response/dafaultInfo.jade' на самом деле существует на вашем жестком диске? В contact.js я бы ожидал увидеть 'res.render ('response/dafaultInfo' ...', поскольку это представление, которое не удалось найти в режиме просмотра. Или же 'response/dafaultInfo' включен в другое представление? – Molda
@Louy app.set ('views', path.join (__ dirname, 'views')); app.set ('view engine', 'jade'); app.set ('layout', 'layout'); – Muco