我正在使用快递和猫鼬,有问题。
作为API服务器,我实现了一个路由器js文件。其中一个帖子是一次在db中保存四个对象。
据我所知,像save()这样的mongoose查询函数可以用作promise对象。
所以我参加了制作一个mongoose查询数组,并将其作为参数放入Promise.all中,但它不起作用。 (运行此代码后,我无法在db上找到任何记录。)
以下是我的代码,请查看它并教我为什么它不起作用。
import { Router } from 'express';
import Collection from '../models/collection.model';
const router = new Router();
router.post('/api/collections/basic-pick/:userId', (req, res) => {
const pickedMons = req.body.pickedMons;
const collections = [];
let condition = 1;
for (const mon of pickedMons) {
condition = Math.floor((Math.random() * 5) + 1);
const collection = new Collection({
_monId: mon._id,
_userId: req.params.userId,
condition,
});
// this log prints right objects
console.log('collection: ' + collection);
collections.push(collection);
}
const proms = [];
for (const collection of collections) {
// collection.save() function returns promise, right?
proms.push(collection.save);
}
Promise.all(proms).then(() => {
return res.json({ success: true });
});
});
export default router;