Я изучаю узел, и я использую Postman для выполнения этих запросов с параметрами в теле.node.js - Плохой заказ в запросе POST с использованием Postman
Для маршрутизатора: router.post ('/ locations', ctrlLocations.locationsCreate); здесь контроллер:
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);
}
});
};
Здесь вы можете увидеть мою модель DB для «мест»:
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);
у меня нет никакой проблемы, чтобы создать новое «местоположение» с помощью MongoDB консоли , но я сталкиваюсь с проблемами при использовании Postman: отправленный ответ изменяет порядок некоторых «полей» и добавляет нежелательные идентификаторы к «временам открытия».
Здесь х-WWW-форм-urlencoded запрос как массовое редактирование:
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
И вот результат:
{
"__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
}
Я создаю здесь документы для API, а также вы можете видеть, что упорядочение плохое, и я не хочу, чтобы _id был в открытые времена: я скорее принудительно создаю идентификатор, когда это необходимо через код, чем автоматически создание.
Возможно, есть лучший способ использовать Почтальон ... Любая помощь будет полезна.
Заранее благодарен!
Я не думаю, что ваша проблема с почтальоном - его мангуста/Монго, что добавление к _id. См. Http://stackoverflow.com/questions/9598505/mongoose-retrieving-data-without-id-field – MrWillihog
Я не могу отказаться от мангуста, но я думаю, что по крайней мере mongo не является, так как этот запрос: 'code' // Сохранить запрос для нового Расположение db.locations.save ({ \t имя: 'Starcups', \t адрес: '125 High Street, Чтение, RG6 1PS', \t рейтинг: 3, \t оборудование: [ 'Горячие напитки ',' Food ',' Premium wifi '], \t coords: [-0.9690884, 51.455041], \t openingTimes: [{ \t \t дней: 'Понедельник - пятница', \t \t открытие: '7:00 утра', \t \t закрытия: '7:00 вечера', \t \t закрыт: ложные \t }, { \t \t дней: 'суббота', \t \t открытие: '8:00 утра', \t \t закрытия: '5:00 вечера', \t \t закрыт: Fals е \t}, { \t \t дней: 'воскресенье', \t \t закрыт: правда \t}] }) 'code' выполняется очень хорошо – AtomicNation
Я прочитал этот пост вы упоминаете, и OK, вы можете исключаем, когда вы находите, но здесь нужно быть гармоничным с режимом db, где время открытия - это свойства местоположения, поэтому они должны быть частью документа, а не вложенными документами (если я получил это хорошо, mongoose создайте id для каждый документ, но не должен создавать, когда мы говорим о самом «объекте»). Танки, во всяком случае! – AtomicNation