Ich versuche, ein Array von Objekten unter Verwendung eines regulären Formulars ohne AJAX einzureichen, und stelle fest, dass statt des Anfragekörpers, der in ein Array von Objekten geparst wird, nur viele Felder den Namen der Objekte entsprechen.In Express, ist es möglich, ein Array von Objekten ohne AJAX POST?
Ich weiß, dass wenn Sie ein Array von Primitiven übergeben, füllen Sie einfach viele Eingaben mit dem gleichen Namen und es wird gefüllt; Ich kann jedoch nicht meinen Kopf darauf legen, das auf komplexe Objekte anzuwenden.
Meine Form Code ist recht einfach:
<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>
ich ein Beispiel-Repository gemacht haben mein Problem demonstriert; https://github.com/xueye/express-form-issue, wo Sie einfach node server.js
ausführen können, navigieren Sie zu http://localhost:3000
und reichen Sie den Eintrag ein; die Anforderung Körper in der Konsole angezeigt werden, wo es als auftauchen sollte:
{ 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' }
Ist es möglich, POST-Daten in der Art, wie ich zu bin versucht?
ich den erweiterten Teil fehlte, und die eckigen Klammern. Das macht Sinn - ich dachte immer, dass Anhang [Index] standardisiert war, aber anscheinend nicht! –
in PHP verwende ich so: 'name =" attachment [] [uri] "' (ohne Indexnummer im Array) und dies funktioniert nicht in Express! –