猫鼬Model.create挂起,没有错误消息

时间:2020-08-15 04:46:12

标签: node.js mongodb express mongoose

我已经定义了Referral模型,并且我正在尝试创建该模型的实例。但是,当我这样做时,请求将无限期挂起。当我console.log(Referral)时,该对象会在控制台中正常显示。

这是我的代码:

                    // TODO: this hangs?
                    console.log("creating referral...");
                    const referral = await Referral.create({
                        referrer: referrer.email,
                        referee: user.email,
                        amount: 1000,
                    });
                    console.log("referral created");

请注意,referral created从未真正打印到控制台上!

这是模型:

const mongoose = require("mongoose");
const crypto = require("crypto");

const schema = new mongoose.Schema(
    {
        referrer: {
            type: mongoose.Types.ObjectId,
            required: true,
        },

        referee: {
            type: mongoose.Types.ObjectId,
            required: true,
        },

        // Number of cents, 1000 = $10
        amount: {
            type: Number,
            required: true,
            min: 0,
        },
    },
    { timestamps: true }
);

// A user can't refer the same user twice
schema.index({ referrer: 1, referee: 1 }, { unique: true });

module.exports = mongoose.model("Referral", schema);

删除schema.index行之后,没有任何变化。我还尝试过检查我是否正在将connectionOpen和猫鼬一起使用,但是我没有。

1 个答案:

答案 0 :(得分:0)

事实证明,问题在于我迁移了Referral模型以使用mongoose.Types.ObjectId而不是string的类型。但是我一直试图将referrer.email用作这些字段的参数。

像这样更改代码后,它不再挂起。

                    const referral = await Referral.create({
                        referrer: referrer,
                        referee: user,
                        amount: 1000,
                    });