2015-01-07 41 views
0

我是新的node.js和express。node.js變量將不會被解析

在我的測試應用程序中,html變量不會被解析。 有什麼問題?

server.js

enter var express = require('express'); 
var bodyParser = require('body-parser'); 
var app = express(); 

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

app.use(express.static(__dirname)); 

app.get('/', function(req, res) { 
    res.render('index', { 
     wert : 'hallo' 
    }); 
}); 

app.post('/', function(req, res) { 
    var wert = req.body.wert; 
    var html = 'Hallo: '+wert+'!\n' 
    + '<a href="/">Mach\'s nochmal!</a>'; 
    res.send(html); 
}); 
app.listen(8882); 
console.log('Server port: 8882'); 

的index.html:

<!DOCTYPE html> 
<html> 
<head> 
<meta charset="ISO-8859-1"> 
<title>Startseite</title> 
</head> 
<body> 
<p>Hallo <%= wert %>, dies ist mein kleiner Webserver!</p> 
<br> 
    <form action="/" method="post"> 
     <input type="text" width="40" name="wert" value="<%= wert %>"> 
     <input type="submit" value="submit"> 
    </form> 
</body> 
</html> 

值參數<%= WERT%>在視圖中不進行解析。 爲什麼?怎麼做?

謝謝 噴氣

回答

0

謝謝奔,

ejs配置還是不錯的。我必須安裝express,ejs,body-parser。沒關係。 然後我不得不與app.use(express.static(__dirname));

刪除行,我不得不改變

app.set('views', __dirname + '/views'); 

to 
app.set('views', __dirname); 

我原來的路徑。

然後一切正常!

greez jet

3

Express不附帶默認視圖引擎。你需要添加一個,在你的情況下EJS

使用命令行中鍵入:

npm install ejs 

server.js現在變成:

var express = require('express'); 
var bodyParser = require('body-parser'); 
var app = express(); 

app.engine('.html', require('ejs').__express); 
app.set('views', __dirname + '/views'); 
app.set('view engine', 'html'); 
app.use(bodyParser.urlencoded({ 
    extended : true 
})); 
app.use(express.static(__dirname)); 

app.get('/', function(req, res) { 
    res.render('index', { 
     wert: 'hallo' 
    }); 
}); 

app.post('/', function(req, res) { 
    var wert = req.body.wert; 
    res.render('index', { 
     wert: wert 
    }); 
}); 
app.listen(8882);