Я пытался создать сайт, используя экспресс и нефрит. Я сделал несколько страниц и маршрутов, и до сих пор он работал нормально. Я получаю следующее сообщение об ошибке:ReferenceError: jade не определен
ReferenceError: jade is not defined
at eval (eval at <anonymous> ([...]project/node_modules/jade/lib/jade.js:165:30), <anonymous>:2:1)
at Object.exports.render ([...]project/node_modules/jade/lib/jade.js:211:10)
at Object.exports.renderFile ([...]project/node_modules/jade/lib/jade.js:247:18)
at View.exports.renderFile [as engine] ([...]project/node_modules/jade/lib/jade.js:232:21)
at View.render ([...]project/node_modules/express/lib/view.js:76:8)
at Function.app.render ([...]project/node_modules/express/lib/application.js:506:10)
at ServerResponse.res.render (/media/ruben/5CCAD622CAD5F7EA/Users/ruben/Google Drev/developer/workspace/kwasi/project/node_modules/express/lib/response.js:759:7)
at exports.home ([...]project/routes/cases.js:7:7)
at callbacks ([...]project/node_modules/express/lib/router/index.js:164:37)
at clientChosen ([...]project/app.js:81:5)
Когда я очистить кэш и куки, я могу пойти на все мои страницы, но всякий раз, когда я войти, то есть установить переменную сеанса с вошедшего пользователя, Я получаю вышеуказанную ошибку.
Я не уверен, какую другую информацию я могу включить. Линия в cases.js, что стек трассировки ссылающихся просто
res.render("home.jade", {})
EDIT:
В моих app.js я указываю нефрит, как движок рендеринга со следующим:
app.configure(function() {
app.set("views", __dirname + "/views"); // Set the views folder
app.set("view engine", "jade"); // Set the rendering engine
...
и мой взгляд выглядит следующим образом:
extend layout
block title
title Forside - #{company}
block content
h3 Sager
- for (var i = 0; i < cases.length; i++) {
.casethumb
p #{cases[i].label}
- }
EDIT 2: справа. То, что я смог определить, состоит в том, что это может иметь какое-то отношение к моему промежуточному программному обеспечению. У меня есть эти две функции
// Makes sure that the user is logged in
loggedIn = function(req, res, next){
if (req.session.user) {
next()
}
else {
if (req.url != "/login") {
req.flash('info', "Før du kan bruge systemet, skal du logge ind")
}
res.redirect("/login")
}
}
// Makes sure that the user has chosen a client to work on
clientChosen = function(req, res, next) {
if (req.session.selectedClient) {
next()
}
else {
res.redirect("/chooseClient")
}
}
И я использую их, как это:
app.get("/", loggedIn, clientChosen, cases.home)
Когда я удалить функцию из моего маршрута как этот
app.get("/", cases.home)
Проблема уходит, но я мне нужна функциональность моего промежуточного программного обеспечения. Как я могу это исправить?
Я отредактировал мой вопрос, чтобы включить мою конфигурацию нефрита и представление в вопросе – Eldamir
Похоже, что это, возможно, придется сделать с сохранением переменных сеанса. Я буду исследовать далее – Eldamir
Можете ли вы вставить код 'cases.home()'. Ваши другие два m/ws выглядят хорошо для меня. – vmx