2017-06-22 73 views
0

我無法弄清楚我弄錯了什麼地方。當我嘗試在瀏覽器中渲染時,它只是說。無法將Express中的變量傳遞給EJS

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(有關的東西,我有快遞需要)

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' 
    }) 
}); 

的意見/ 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> 

我一直停留在這個簡單的問題了一個多小時,說實話,我完全不知道它的意思。

+1

不知道這會解決這個問題,但是你錯過了在'res.render()'行的末尾分號。 – heyitsjhu

+0

是的,固定它,但它不是問題 – Sidexx

回答

0

一切似乎與代碼確定。可能你忘記了一些微不足道的東西。

這是我的工作設置:

如果
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/");