NodeJS Express HTML隐藏输入值仅显示第一个单词

时间:2018-01-25 04:59:31

标签: html node.js express hidden-field

我有一个节点js app,它使用EJS作为模板引擎。在几个页面上,我使用隐藏的输入并使用req.body访问它们的值。我已经将我的身体解析器设置为快速,一切都很好。但是,似乎任何具有多于一个单词的隐藏输入仅显示第一个单词。

因此,例如,name = "eventname"的隐藏输入具有值:“示例隐藏文本”。当我在快速路线中req.body.eventname时,我得到“样本”。为了测试,我将隐藏输入的值更改为“Sample_hidden_​​text”,在这种情况下,req.body.eventname作为“Sample_hidden_​​text”出现。隐藏的输入不允许值中的空格吗?

以下是示例代码。来自控制台日志page.ejs的event.name值给出了“示例隐藏文本”的正确值。但是,路径中的控制台日志会显示“Sample”。

Page.ejs

    <form action="/addnewresult" method="POST">
<% console.log("the value of event.name hidden field", event.name) %>
           <input type="hidden" name="eventname" value=<%= event.name %>>
            <button type="submit" name="submit" class="btn">Submit</button>
    </form>

App.js

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


 app.post("/addnewresult", function(req,res){
    console.log("this is req.body in the post call:  ",  req.body);

    DBhandler.CreateResult(req,res,function(callback){
        //do some stuff here
    });
 });

1 个答案:

答案 0 :(得分:0)

这只是来自 Andrew Myers 在评论中的总结。 需要使用引号 -> "<%= event.name %>" 而不仅仅是 <%= event.name %> 来显示整个文本,而不仅仅是第一个单词。

感谢 Andrew Myers,它也帮助了我!