我已经定义了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
和猫鼬一起使用,但是我没有。
答案 0 :(得分:0)
事实证明,问题在于我迁移了Referral
模型以使用mongoose.Types.ObjectId
而不是string
的类型。但是我一直试图将referrer.email
用作这些字段的参数。
像这样更改代码后,它不再挂起。
const referral = await Referral.create({
referrer: referrer,
referee: user,
amount: 1000,
});