我的代码中出现以下错误消息:
field.arguments.forEach(collectNode); ^
TypeError:无法读取未定义的属性“ forEach”
newPedido: (root, {input}) =>{
const newPedido = new Pedidos({
pedido: input.pedido,
total: input.total,
fecha: new Date(),
cliente: input.cliente,
estado: "PENDIENTE"
});
newPedido.id = newPedido._id;
return new Promise((resolve, object) => {
input.pedido.forEach(pedido => {
Productos.updateOne({_id : pedido.id},
{ "$inc":
{"stock" : -pedido.cantidad}
}, function(error) {
if(error) return new Error(error)
}
)
});
newPedido.save((error) => {
if(error) rejects(error)
else resolve(newPedido)
});
});
}
答案 0 :(得分:0)
在迭代之前检查input.pedito
是否存在并且是数组:
newPedido: (root, {input}) =>{
const newPedido = new Pedidos({
pedido: input.pedido,
total: input.total,
fecha: new Date(),
cliente: input.cliente,
estado: "PENDIENTE"
});
newPedido.id = newPedido._id;
return new Promise((resolve, object) => {
if (input.pedito && input.pedito.length > 0) {
input.pedido.forEach(pedido => {
Productos.updateOne({_id : pedido.id},
{ "$inc":
{"stock" : -pedido.cantidad}
}, function(error) {
if(error) return new Error(error)
}
)
});
}
newPedido.save((error) => {
if(error) rejects(error)
else resolve(newPedido)
});
});
}