【问题标题】:Node.js With Express And EJS updating a single element in view带有 Express 和 EJS 的 Node.js 更新视图中的单个元素
【发布时间】:2016-09-27 19:36:17
【问题描述】:

我需要的是在服务器端更改value2并刷新视图,所以问题是:

如何更新和刷新视图,但只能使用新的 value2

服务器:

var express = require("express");
var app =  express();
app.set('view engine', 'ejs');
app.set('view cache', false);

app.set('title', 'Test');

var bodyParser=require("body-parser"); 

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

app.use(express.static('public'));

app.get('/', function( req, res, next ) {
    res.render('test', { value1: 'A', value2: 'B', value3: 'C', value4: 'D' } );
});

app.post('/', function( req, res, next ) {
// I don't know value1, value3 and value4 :(
// and the Next line doesn't work
  res.render('test', { value2: 'X' } );
});

app.listen(3001);

客户:

<!DOCTYPE html>
<html>
<head>
    <title> Hi </title>
</head>
<body>
    <form id="update" method="post" action="/" >
        <h2> This is Value1 (<%= value1 %>) and This is Value2 (<%= value2 %>) </h2>
        <h2> This is Value3 (<%= value3 %>) and This is Value4 (<%= value4 %>) </h2>
        <button type="submit" >Change Value2</button>
    </form>
</body>
</html>

【问题讨论】:

    标签: javascript node.js express ejs


    【解决方案1】:

    您可能喜欢使用隐藏的输入元素(&lt;input type="hidden"&gt;)。所以你的 html 将是

    <!DOCTYPE html>
    <html>
    <head>
        <title> Hi </title>
    </head>
    <body>
        <form id="update" method="post" action="/" >
            <input type="hidden" name="value1" value="<%= value1 %>">
            <input type="hidden" name="value2" value="<%= value2 %>">
            <input type="hidden" name="value3" value="<%= value3 %>">
            <input type="hidden" name="value4" value="<%= value4 %>">
            <h2> This is Value1 (<%= value1 %>) and This is Value2 (<%= value2 %>) </h2>
            <h2> This is Value3 (<%= value3 %>) and This is Value4 (<%= value4 %>) </h2>
            <button type="submit" >Change Value2</button>
        </form>
    </body>
    </html>
    

    你需要更新你的req.post路由如下

    app.post('/', function( req, res, next ) {
      res.render('test', { value1: req.body.value1, value2: 'X', value3: req.body.value3, value4: req.body.value4 } );
    });
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-02-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-04-17
      • 2019-11-25
      • 2017-07-21
      相关资源
      最近更新 更多