无法将变量从Express传递给EJS

时间:2017-06-22 00:21:58

标签: node.js 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'
  })
});

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>

我在这个简单的问题上被困了一个多小时,说实话,我完全不知道这意味着什么。

1 个答案:

答案 0 :(得分: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/");