我有一个用户模式,看起来像这样:
const userSchema = new Schema({
email: {
type: String,
required: true,
unique: true,
trim: true
},
password: {
type: String,
required: true
},
role: {
type: String,
default: 'customer',
enum: ['customer', 'farmer', 'admin']
},
user_id: {
type: Schema.Types.ObjectId,
required: true,
unique: true
}
})
字符串
此外,我还有另一个名为customer
的模式,看起来像这样:
const customerSchema = new Schema({
company: String,
contact: String,
...etc
})
型
现在我想做的是在创建User
文档时,创建并保存一个新的Customer
文档,然后保存it_id到我的User
文档的user_id
字段中。
post请求看起来像这样:
// POST - USER REGISTRATION
router.post('/register', function (req, res) {
const { email, password, role } = req.body
const user = new User({ email, password, role,
user_id: new Customer({
company: req.body.company,
contact: req.body.contact,
...etc (rest of data)
})})
user.save(function(err) {
if (err) {
res.status(500)
.send("Failed to register. Please try again.")
}
else {
res.status(200).send("Registered.")
}
})
})
型
虽然这似乎创建了一个Customer
对象**(user_id下有一个ObjectID)**,但客户并没有保存到数据库中(自然是因为没有调用.save
)。
我最初的方法是将user_id变量设置为null,然后让客户创建并保存自己,然后将user_id
变量设置为customer._id
值,但这不起作用,因为user.save(func(err))
将具有null
user_id值。
1条答案
按热度按时间lxkprmvk1#
就像这样
字符串