作为Promise.all的arg的mo​​ngoose查询数组似乎无法正常工作

时间:2016-06-20 14:33:11

标签: express mongoose promise ecmascript-6

我正在使用快递和猫鼬,有问题。

作为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;

0 个答案:

没有答案