如何在hasAndBelongsToMany关系中创建初始加载数据?
示例:
Model Product
{
idProduct,
Description
(..)
}
Model Order
{
idOrder,
Date
(...)
}
大张旗鼓的有:
PUT: /order/{id}/product/rel/{fk}
{
"id": "string",
"orderId": "string",
"productId": "string"
}
但是我不知道如何使它成为我的节点启动脚本(我可以通过什么方法调用此方法)...
我知道如何插入订单,插入产品,但是我不知道如何在一个或多个订单中“链接”一个或多个产品。
我在其他链接中看到了"Order.Product.link({id1: val1, id2: val2})"
,但在节点上却不起作用...
答案 0 :(得分:0)
要创建新链接,您需要首先获取源模型(订单)的实例,然后调用关系方法add
以与目标模型(产品)建立关系。
const order = await Order.findById(orderId);
await order.products.add(productId);
如果要在创建新订单时添加产品:
const order = await Order.create({/* order data */});
await order.products.add(productId);
如果您尚未使用异步功能或Promises,则此处为基于回调的版本:
Order.findById(orderId, function(err, order) {
if (err) // handle the error
order.products.add(productId, function(err) {
if (err) // handle the error
// done
});
});