我是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>
值参数&lt;%= wert%&gt;在视图中没有解析。 为什么?怎么做?
谢谢你 喷射答案 0 :(得分: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);
答案 1 :(得分:0)
谢谢你,
您的ejs
配置很好。
我必须安装express
,ejs
,body-parser
。那没关系。
然后我不得不删除app.use(express.static(__dirname));
我不得不改变
app.set('views', __dirname + '/views');
to
app.set('views', __dirname);
我的原始路径。
然后一切都很好!
greez 喷射