У меня есть объект Customer с несколькими свойствами, такими как address, shippingAddress и billingAddress, и если клиент не передает никаких дополнительных данных адреса доставки / биллинга, мне нужно, чтобы данные адреса были дублированы в эти свойства по умолчанию.
У меня уже есть решение, и оно работает, но, возможно, у кого-то есть более чистый подход. Я пробовал это с default: this.address
, но это не работает.
/ модель / клиент. js
const customerSchema = new mongoose.Schema({
address: {
type: addressSchema,
required: true,
},
shippingAddress: {
type: addressSchema
}
});
customerSchema.methods.setShippingAddress = function(address, shippingAddress) {
return (shippingAddress) ? shippingAddress : address;
}
/ маршруты / клиенты. js
router.post('/', (req, res) => {
let customer = new Customer({
address: req.body.address
});
customer.shippingAddress = customer.setShippingAddress(req.body.address, req.body.shippingAddress);
customer = await customer.save();
res.status(200).send(customer);
});
Поэтому, когда API получает запрос POST, я на самом деле просто проверяю, передано ли в запросе свойство shippingAddress, а если нет, то просто перезаписываю .shippingAddress =
на address
.