Я пытался использовать async
await
для сохранения одного или нескольких mon goose документа, после того, как весь документ был сохранен, позвоните find()
, чтобы получить весь сохраненный документ и зарегистрировать его
В первый раз, когда я сохраняю документ, все распечатывается соответственно
, но при втором сохранении ввод был в неправильном порядке
Изображение> Красный цвет второе сохранение
Это мой код
app.post('/quotes', async (req, res) => {
if (req.isAuthenticated()) {
const author = req.user.id;
const requestedSession = mongoose.Types.ObjectId()
const quotations = req.body;
const quoteCount = req.body.name.length;
const isArray = Array.isArray(quotations.name);
function createQuote() {
if (isArray) {
for (var i = 0; i < quoteCount; i++) {
const quote = new Quote({
author: author,
sessionID: requestedSession,
datestamp: dateStamp(),
timestamp: timeStamp(),
name: quotations.name[i],
type: quotations.type[i],
quantity: quotations.quantity[i],
price: quotations.price[i],
total: quotations.total[i],
});
quote.save()
} return
} else if (!isArray) {
const quote = new Quote({
author: author,
sessionID: requestedSession,
datestamp: dateStamp(),
timestamp: timeStamp(),
name: quotations.name,
type: quotations.type,
quantity: quotations.quantity,
price: quotations.price,
total: quotations.total,
});
quote.save()
}
}
try {
createQuote()
const getquote = await Quote.find({sessionID: requestedSession})
console.log(getquote)
} catch (error) {
console.log(error)
}
res.redirect('/main');
} else {
res.redirect('/login');
}
});
Кроме того, в моем журнале консоли второй журнал состоял только из 1 элемента
[
{
_id: 5f24b68ba5a9226c60e948cb,
author: 5f1b84dddf112c5a0404a600,
sessionID: 5f24b68ba5a9226c60e948ca,
datestamp: '07/31/2020',
timestamp: '17:25:47',
name: '1',
type: 'exterior-props',
quantity: 1,
price: 1,
total: 1,
__v: 0
},
{
_id: 5f24b68ba5a9226c60e948cc,
author: 5f1b84dddf112c5a0404a600,
sessionID: 5f24b68ba5a9226c60e948ca,
datestamp: '07/31/2020',
timestamp: '17:25:47',
name: '2',
type: 'interior-props',
quantity: 2,
price: 2,
total: 2,
__v: 0
},
{
_id: 5f24b68ba5a9226c60e948cd,
author: 5f1b84dddf112c5a0404a600,
sessionID: 5f24b68ba5a9226c60e948ca,
datestamp: '07/31/2020',
timestamp: '17:25:47',
name: '3',
type: 'exterior-props',
quantity: 3,
price: 3,
total: 3,
__v: 0
},
{
_id: 5f24b68ba5a9226c60e948ce,
author: 5f1b84dddf112c5a0404a600,
sessionID: 5f24b68ba5a9226c60e948ca,
datestamp: '07/31/2020',
timestamp: '17:25:47',
name: '4',
type: 'exterior-props',
quantity: 4,
price: 4,
total: 4,
__v: 0
},
{
_id: 5f24b68ba5a9226c60e948cf,
author: 5f1b84dddf112c5a0404a600,
sessionID: 5f24b68ba5a9226c60e948ca,
datestamp: '07/31/2020',
timestamp: '17:25:47',
name: '5',
type: 'plubming-system',
quantity: 5,
price: 5,
total: 5,
__v: 0
},
{
_id: 5f24b68ba5a9226c60e948d0,
author: 5f1b84dddf112c5a0404a600,
sessionID: 5f24b68ba5a9226c60e948ca,
datestamp: '07/31/2020',
timestamp: '17:25:47',
name: '6',
type: 'paint-work',
quantity: 6,
price: 6,
total: 6,
__v: 0
},
{
_id: 5f24b68ba5a9226c60e948d1,
author: 5f1b84dddf112c5a0404a600,
sessionID: 5f24b68ba5a9226c60e948ca,
datestamp: '07/31/2020',
timestamp: '17:25:47',
name: '7',
type: 'plubming-system',
quantity: 7,
price: 7,
total: 7,
__v: 0
}
]
[
{
_id: 5f24b6c2a5a9226c60e948d5,
author: 5f1b84dddf112c5a0404a600,
sessionID: 5f24b6c2a5a9226c60e948d2,
datestamp: '07/31/2020',
timestamp: '17:26:42',
name: '10',
type: 'paint-work',
quantity: 10,
price: 10,
total: 10,
__v: 0
}
]
Спасибо заранее для помощи и предложений