TypeError:无法读取未定义的Graphql,Node.js的属性“ forEach”

时间:2019-11-29 13:47:55

标签: node.js mongodb graphql

我的代码中出现以下错误消息:

  

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)
                });
            });
        }

1 个答案:

答案 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)
                });
            });
        }