我在处理来自Post表单的req时遇到问题。
表格看起来像那样
<form action="/" method="POST">
<div class="form-group">
<label for="city-input">City name</label>
<div class="col-10">
<input class="form-control" type="text" id="city-input" name="map-city">
</div>
<input type="checkbox" aria-label="..."/>
<label style="color: #737373;font-family: 'Open Sans', sans-serif;line-height: 30px;">Choose or type</label>
</div>
<div class="form-group">
<label for="example-text-input">Symbol</label>
<div class="col-10">
<input class="form-control" type="text" id="example-text-input" name="map-symbol">
</div>
</div>
<button type="submit" class="btn btn-primary">Submit</button>
</form>
我尝试将每个值保存到可行的
中router.post('/', jsonParser, function(req, res, next){
var test = req.body;
var test0 = test.map-city;
var test1 = test.map-symbol;
});
当我检查什么是req.body我得到
Object{map-city: "downtown", map-symbol: "dt"}
如何处理此问题以将每个属性保存为字符串
现在我收到错误 - ReferenceError:city未定义
谢谢
答案 0 :(得分:1)
使用点符号在这里不起作用,因为如果您尝试使用点符号访问带有连字符的对象属性(通常称为kebab案例),javascript将引发错误。您应该使用括号表示法:
var test0 = test['map-city'];
var test1 = test['map-symbol'];
&#13;
答案 1 :(得分:1)
Object{map-city: "downtown", map-symbol: "dt"}
将输入标记中的name属性更改为map_city
,它将起作用。
<input class="form-control" type="text" id="city-input" name="map_city">
节点将您的代码理解为test.map减去城市(-
被视为减法符号)。同样的逻辑也适用于其他输入字段。