我在试着定义一个
statics
convertFromCartItems
它需要一系列类型的模型
CartItem
,创建类型为的模型数组
OrderItem
insertMany()
. 我当前用于创建
Order
从
Cart
(父模型
订单项
和
分别指向)如下所示:
schema.statics.convertFromCart = function (cart, shipping, then, unless) {
let order = new this()
order._cart = cart
order.firstName = shipping.firstName
order.lastName = shipping.lastName
order.email = shipping.email
order.address = shipping.address
order.addressCity = shipping.addressCity
order.addressPostalCode = shipping.addressPostalCode
order.addressRegionCode = shipping.addressRegionCode
order.addressCountryCode = shipping.addressCountryCode
order.save((err, thing) => {
if (!err && thing) {
then(thing)
} else {
unless(err)
}
})
}
此函数调用
.save()
models.Order.convertFromCart(cart, shipping, (order) => {
// Do something with the newly created 'Order'
})
但是在猫鼬(实际上是猫鼬)
insertMany()
是在模型上定义的,而不是在实例上定义的,所以我要做的是这样的:
schema.statics.convertFromCartItems = function (order, items, then unless) {
let orderItems = []
items.forEach((item) => {
let orderItem = this()
orderItem._item = item
orderItem._order = order
orderItem.quantity = item.quantity
orderItem.subscribed = item.subscribed
orderItem.name = item._item._product.name
orderItem.variation = item._item.variation
orderItem.price = item._item.price
orderItem.image = item._item._product.image
orderItem.created = item.created
orderItem.updated = item.update
orderItems.push(orderItem)
})
// code I want to use
OrderItemSchema.insertMany(orderItems, funciton (err, things) {
if (!err && things) {
then(things)
} else {
unless(err)
}
})
}
但是在这里面
statics.convertFromCartItems
功能,
OrderItemSchema
this
this()
this.insertMany()
或
this().insertMany()
insertMany()
在模型上,而不是实例上)。当前的工作区是返回数组,然后调用
models.OrderItem.insertMany()
对于此函数之外的项。有没有办法让这个函数自己插入?
如果它有助于理解我在这里是这两个模型的基本概述。我有一个模型,它代表购物车中的一个项目(
CartItem公司
订单项
)(这与
Double-entry bookkeeping system
CartItem公司
可以指向产品名称和价格等事物的当前定义)。