2017-06-22 21 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' 
    }) 
}); 

ビュー/私は上のため、この単純な問題で立ち往生してきた

<!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> 

をlogin.ejs(関連スタッフ、私が持っているExpressが必要です)正直言って私はそれが何を意味するか全く分かりません。

+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/"); 
関連する問題