Estoy tratando de cargar algunos datos del producto en una base de datos Mongodb antes de que se inicie el servidor Node, exporto el cargador de datos en server.js. El error se debe a una clave duplicada. Primero, soy un novato cuando se trata de Node. Cuando ejecuto el archivo por sí solo, carga los datos sin ningún problema. Solo falla cuando incluyo en server.js
Aquí está el código para server.js
const express = require("express"); const app = express(); const http = require("http"); http.globalAgent = new http.Agent({ keepAlive: true }); const connectDbi = require("./config/prod-config"); connectionDbi(); const router = require("./routes/productRoutes"); //Get the data loader here const loader = require("./loader/dbLoader"); //Load the products here loader.productsLoader(); app.use(express.json()); app.use("/api/v2/products", router); app.listen(3000, () => console.log("Example app is listening on port 3000."));Así es como se cargan los datos
const fs = require("fs"); const Product = require("../models/Product"); const products = JSON.parse( // Read products from a file ); exports.productsLoader = () => { Product.create(products) .then(() => console.log("Products loaded")) .catch((err) => console.log(err)); };Aquí hay una muestra de los datos:
[ { product_id: 667070, category_code: "FRT55", product_name: "Gala Apples", keywords: ['produce'], }, { product_id: 667071, category_code: "FRT305", product_name: "Granny Smiths", keywords: ['produce'], }, ];Desafortunadamente, los datos comienzan a cargarse y luego fallan con una clave duplicada después de cargar el primer producto. No hay otro lugar, excepto en server.js, donde se importa y usa este código de cargador. ¿Cómo puede surgir una clave duplicada del cargador? ¿Cómo puedo evitar que esto suceda? ¿Hay una mejor manera de asegurarse de que esto no suceda? Creo que este comportamiento probablemente se deba al proceso del ciclo de vida en Node, soy bastante nuevo en Node.js
Aquí está el error:
Example app is listening on port 3000. Connected to host localhost MongoServerError: E11000 duplicate key error collection: products-db index: id_1 dup key: { product_id: 667070 } at c:\mongo-project\node_modules\mongodb\lib\operations\insert.js:51:33