我有一个节点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
});
});
答案 0 :(得分:0)
这只是来自 Andrew Myers 在评论中的总结。
需要使用引号 -> "<%= event.name %>"
而不仅仅是 <%= event.name %>
来显示整个文本,而不仅仅是第一个单词。
感谢 Andrew Myers,它也帮助了我!