2017-06-22 3 views
0

Ich kann nicht herausfinden, wo ich versagt habe. Wenn ich versuche, dies in meinem Browser zu rendern, heißt es einfach.Keine Variable von Express an EJS übergeben

ReferenceError: /views/login.ejs:14 
12| <h1> 
13|  Value: 
>> 14|  <span id="val"><%= val %></span> 
15| </h1> 
16| </body> 
17| 

val is not defined 

App.js (Relevante Stuff, ich habe Express erforderlich)

app.set('view engine', 'ejs'); 
app.set('views', path.join(__dirname + '/views')); 
app.use(express.static(path.join(__dirname + '/public'))); 

app.use(bodyParser.urlencoded({ 
    extended: false 
})); 
app.use(bodyParser.json()); 



app.use(session({ 
    secret: 'hello world', 
    resave: true, 
    saveUninitialized: true 
})); 

app.get('/register', routes.register); 

app.post('/register', routes.postRegister); 

app.get('/login', function(req, res) { 
    res.render('login', { 
    val: 'whatever' 
    }) 
}); 

views/login.ejs

<!DOCTYPE html> 
<html lang="en"> 

<head> 
    <meta charset="UTF-8"> 
    <title>Login Page</title> 
</head> 

<body> 
    <h1> 
    Value: 
    <span id="val"><%= val %></span> 
    </h1> 
</body> 

</html> 

Ich habe über ein in diesem einfachen Problem stecken geblieben Stunde und ehrlich habe ich absolut keine Ahnung was es bedeutet.

+1

Nicht sicher, ob dies das Problem zu beheben, aber Ihnen fehlt ein Semikolon am Ende des 'res.render()' Linie. – heyitsjhu

+0

ja, reparierte es aber es war nicht das Problem – Sidexx

Antwort

0

Alles scheint mit dem Code in Ordnung. Wahrscheinlich hast du etwas Triviales vergessen. Diese

ist mein Arbeits Setup:

var express = require('express'); 

// Create a new Express application. 
var app = express(); 


// Configure view engine to render EJS templates. 
app.set('views', __dirname + '/views'); 
app.set('view engine', 'ejs'); 

// Define routes. 
app.get('/', function(req, res) { 

res.render('index', { 
val: 'whatever' 
}); 
}); 

app.listen(process.env.PORT || 5000); 
console.log("Server running at http://localhost:5000/"); 
Verwandte Themen