В экспрессе можно ли POST массив объектов без AJAX?
Я пытаюсь передать массив объектов, используя обычную форму, без AJAX, и обнаруживаю, что вместо того, чтобы тело запроса анализировалось в массив объектов, в нем просто есть много полей, соответствующих именам объектов.
Я знаю, что при отправке массива примитивов вы просто заполняете множество входных данных одним и тем же именем, и оно будет заполняться; однако я не могу обернуться, применяя это к сложным объектам.
Мой код формы довольно прост:
<div class="col-sm-9">
<div class="row">
<div class="col-md-6">
<div class="form">
<div class="form-group">
<label for="attachment[0].name" class="control-label">Name</label>
<input name="attachment[0].name" class="form-control" value="First Name" type="text">
</div>
<div class="form-group">
<label for="attachment[0].uri" class="control-label">URI</label>
<input name="attachment[0].uri" class="form-control" value="First URI" type="text">
</div>
<div class="form-group">
<label for="attachment[0].description" class="control-label">Description</label>
<textarea rows="4" value="First Description" name="attachment[0].description" class="form-control">First Description</textarea>
</div>
</div>
</div>
</div>
<div class="row">
<div class="col-md-6">
<div class="form">
<div class="form-group">
<label for="attachment[1].name" class="control-label" >Name</label>
<input name="attachment[1].name" class="form-control" value="Second Name" type="text">
</div>
<div class="form-group">
<label for="attachment[1].uri" class="control-label">URI</label>
<input name="attachment[1].uri" class="form-control" value="Second URI" type="text">
</div>
<div class="form-group">
<label for="attachment[1].description" class="control-label">Description</label>
<textarea rows="4" name="attachment[1].description" class="form-control">Second Description</textarea>
</div>
</div>
</div>
</div>
Я сделал пример репозитория, демонстрирующий мою проблему;https://github.com/xueye/express-form-issue где вы можете просто бежатьnode server.js
, перейдите кhttp://localhost:3000
и подать заявку; тело запроса будет отображаться в вашей консоли, где оно должно отображаться как:
{ name: '',
type: '',
'attachment[0].name': 'First Name',
'attachment[0].uri': 'First URI',
'attachment[0].description': 'First Description',
'attachment[1].name': 'Second Name',
'attachment[1].uri': 'Second URI',
'attachment[1].description': 'Second Description' }
Можно ли размещать данные так, как я пытаюсь?