Наличие mongoose
схемы, где carNumber
должно быть уникальным:
var Schema = mongoose.Schema({
createdAt: {
type: Date,
default: Date.now
},
carNumber: {
type: String, index: {unique: true, dropDups: true},
},
carOwner: String
});
При express
данные функции контроллера сохраняются в дБ:
export const addCar = (req, res) => {
const newCar = new Car(req.body);
newCar.save((err, car) => {
if (err) {
return res.json({ 'success': false, 'message': 'Some Error' });
}
return res.json({ 'success': true, 'message': 'Car '+ car.carNumber +' added successfully', car });
})
}
, но возвращает Unhandled Rejection (TypeError): Cannot read property 'carNumber' of undefined
при попытке добавить повторяющееся значение. Во избежание ошибок функция обновляется для проверки undefined
значения:
export const addCar = (req, res) => {
const newCar = new Car(req.body);
newCar.save((err, car) => {
if (car.carNumber === undefined) {
return res.json({ 'success': false, '': 'Some Error' });
}
else {
return res.json({ 'success': true, 'message': 'Car '+ car.carNumber +' added successfully', car });
}
})
}
Но получая Unhandled Rejection (SyntaxError): Unexpected token P in JSON at position 0
при response.json().then(error => { ... }
во входном редукционном действии:
export const addNewCar = (car) => {
console.log(car)
return (dispatch) => {
dispatch(addNewCarRequest(car));
return fetch(apiUrl, {
method: 'post',
body: car,
}).then(response => {
if (response.ok) {
response.json().then(data => {
console.log(data.car);
dispatch(addNewCarRequestSuccess(data.car, data.message))
})
}
else {
response.json().then(error => {
dispatch(addNewCarRequestFailed(error))
})
}
})
}
}
Чувствуя себя полностью потерянным ... Может кто-то попал в ту же проблему?