节点.js变量不会被解析

node.js variables will not be parsed

本文关键字:js 变量 节点      更新时间:2023-09-26

我是node的新手.js和表达。

在我的测试应用中,不会解析 HTML 变量。问题出在哪里?

服务器.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');

索引.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 %>。为什么?怎么办?

谢谢噴氣機

Express默认

不附带视图引擎。您需要添加一个,在您的情况下是 EJS。

使用命令行,键入:

npm install ejs

服务器.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);

谢谢本,

你的ejs配置很好。我必须安装expressejsbody-parser。没关系。然后我不得不删除带有app.use(express.static(__dirname));的行

我必须改变

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

为我原来的路径。

然后一切都好!

格雷兹噴氣機