Ich lerne Knoten und ich benutze Postman, um diese Anfrage mit Parametern im Körper auszuführen.node.js - Schlechte Reihenfolge in POST-Anfrage mit Postman
Für den Router: router.post ('/ locations', ctrlLocations.locationsCreate); hier ist die Steuerung:
module.exports.locationsCreate = function (req, res) {
Loc.create({
name: req.body.name,
address: req.body.address,
facilities: req.body.facilities.split(","),
coords: [parseFloat(req.body.lng), parseFloat(req.body.lat)],
openingTimes: [{
days: req.body.days1,
opening: req.body.opening1,
closing: req.body.closing1,
closed: req.body.closed1,
},{
days: req.body.days2,
opening: req.body.opening2,
closing: req.body.closing2,
closed: req.body.closed2,
}]
},
function(err, location){
if(err){
sendJSONresponse(res, 400, err);
} else{
sendJSONresponse(res, 201, location);
}
});
};
Hier können Sie mein DB-Modell für die Standorte "finden Sie unter:
var mongoose = require('mongoose');
var openingTimeSchema = new mongoose.Schema({
days: {type: String, required: true},
opening: String,
closing: String,
closed: {type: Boolean, required: true}
});
var reviewSchema = new mongoose.Schema({
author: {type: String, required: true},
rating: {type: Number, required: true, min: 0, max: 5},
reviewText: {type: String, required: true},
createdOn: {type: Date, "default": Date.now}
});
var locationSchema = new mongoose.Schema({
name: {type: String},
address: String,
rating: {type: Number, "default":0, min: 0, max: 5},
facilities: [String],
coords: {type: [Number], index:'2ndsphere'},
openingTimes: [openingTimeSchema],
reviews: [reviewSchema]
});
mongoose.model('Location', locationSchema);
I unter Verwendung mongodb Konsole kein Problem haben, um einen neuen‚Standort‘zu erstellen , aber ich habe Probleme mit Postman: die gesendete Antwort ändert die Reihenfolge einiger 'Felder' und fügt den 'Öffnungszeiten' unerwünschte IDs hinzu.
Hier ist die x-www-form-urlencoded Anfrage als Bulk-Bearbeitung:
name:Paquito's Bar
address:41 Lower Brook St, Reading RG1 2AQ, UK
rating:4.5
facilities:WiFi, Coffe, Sexy Staff
lng:-0.9722977
lat:51.4494778
days1:Monday -Friday
opening1:8:00am
closing1:5:00pm
closed1:false
days2:Saturday - Sunday
opening2:10:00am
closing2:12:00pm
closed2:false
Und hier das Ergebnis:
{
"__v": 0,
"name": "Paquito's Bar",
"address": "41 Lower Brook St, Reading RG1 2AQ, UK",
"_id": "5774ecf8bcdead7c368a7648",
"reviews": [],
"openingTimes": [
{
"days": "Monday -Friday",
"opening": "8:00am",
"closing": "5:00pm",
"closed": false,
"_id": "5774ecf8bcdead7c368a764a"
},
{
"days": "Saturday - Sunday",
"opening": "10:00am",
"closing": "12:00pm",
"closed": false,
"_id": "5774ecf8bcdead7c368a7649"
}
],
"coords": [
-0.9722977,
51.4494778
],
"facilities": [
"WiFi",
" Coffe",
" Sexy Staff"
],
"rating": 0
}
ich bin für die API hier die Erstellung von Dokumenten, und als Sie können sehen, dass die Bestellung schlecht ist, und ich will _id nicht in den Öffnungszeiten: Ich erzwinge eher die ID-Erstellung, wenn über Code als automatische Erstellung benötigt wird.
Vielleicht gibt es eine bessere Möglichkeit, Postman zu verwenden ... Jede Hilfe wird nützlich sein.
Vielen Dank im Voraus!
definieren glaube nicht, Ihr Problem mit Postbote ist - seine Mungo/Mongo, der die _id hinzuzufügt. Siehe http://stackoverflow.com/questions/9598505/mongoose-retrieving-data-without-id-field – MrWillihog
Ich kann Mungo nicht verwerfen, aber ich denke zumindest Mongo ist nicht, wie diese Abfrage: 'code' // speichern Sie Abfrage nach neuen Standort db.locations.save ({ \t Name: 'Starcups', \t Adresse: '125 High Street, Reading, RG6 1PS', \t Bewertung: 3, \t Einrichtungen: [ 'Heiße Getränke ',' Essen ',' Premium wifi '], \t coords: [-0.9690884, 51.455041], \t openingTimes: [{ \t \t Tage: 'Montag - Freitag', \t \t Eröffnung: '07.00', \t \t Schließung: '07.00', \t \t geschlossen: false \t }, { \t \t Tage: 'Samstag', \t \t Eröffnung: '8.00', \t \t Schließung: '05.00', \t \t geschlossen: fals e \t}, { \t \t Tage: 'Sonntag', \t \t geschlossen: true \t}] }) 'code' ausführt – AtomicNation
sehr gut habe ich den Beitrag, den Sie erwähnen, zu lesen, und OK, können Sie Ausschließen, wenn Sie finden, aber die Sache hier ist, ich bin Harmonie mit dem Db-Modus, wo Öffnungszeiten sind Eigenschaften eines Ortes, so dass sie Teil des Dokuments sein sollten, und nicht Filialdokumente (wenn ich es gut mongoose IDs für zu schaffen jedes Dokument, aber sollte nicht erstellen, wenn wir über das "Objekt" selbst sprechen). Panzer sowieso! – AtomicNation