Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

250
Visualizações
Cuando se agrega una nueva imagen, la imagen anterior se reemplaza automáticamente en nodejs cómo solucionarlo

Creé un archivo desde el cual puedo cargar la imagen con éxito, pero el nombre de la imagen que aparece ( undefiend.jpg ) en este proyecto usa el middleware de carga de archivos express

* administrador.js

 var express = require("express"); const productHelpers = require("../helpers/product-helpers"); var router = express.Router(); var productHelper = require("../helpers/product-helpers"); /* GET users listing. */ router.get("/", function (req, res, next) { productHelpers.getAllProducts().then((products) => { console.log(products); res.render("admin/view-products", { admin: true, products }); }); }); router.get("/add-product", function (req, res) { res.render("admin/add-product"); }); router.post("/add-product", (req, res, next) => { productHelpers.addProduct(req.body, (id) => { let image = req.files.Image; console.log(id); image.mv("./public/product-images/" + id + ".jpg", (err) => { if (!err) { res.render("admin/add-product"); } else { console.log(err); } }); }); }); module.exports = router;

ayudantes-producto.js
Aquí hago devolución de llamada usando id

 product-helpers.js` var db=require('../config/connection') var collection=require('../config/collections') module.exports={ addProduct:(product,callback)=>{ db.get().collection('product').insertOne(product).then((data)=>{ callback(data._id) }) } }

`

about 4 years ago · Juan Pablo Isaza
1 Respostas
Responde à pergunta

0

Creo que deberías usar data.insertedId,

 module.exports = { addProduct: (product, callback) => { db.get().collection('product').insertOne(product).then((data) => { callback(data.insertedId) }) } }

en la documentación de mongodb https://www.mongodb.com/docs/manual/reference/method/db.collection.insertOne/ , se muestra que insertOne() devuelve

 { "acknowledged" : true, "insertedId" : ObjectId("56fc40f9d735c28df206d078") }

Insertar un documento sin especificar un campo _id En el siguiente ejemplo, el documento pasado al método insertOne() no contiene el campo _id:

 try { db.products.insertOne({ item: "card", qty: 15 }); } catch (e) { print(e); };

La operación devuelve el siguiente documento:

 { "acknowledged" : true, "insertedId" : ObjectId("56fc40f9d735c28df206d078") }

Pero de todos modos, puede usar la propiedad de nombre de req.files.image : por ejemplo:

 const image = req.files.image; const imageName = image.name; const imagePath = './public/product-images/' + imageName; console.log(imagePath); image.mv(imagePath, (error) => { //something here })

Si desea utilizar más propiedades, consulte aquí: https://www.npmjs.com/package/express-fileupload

about 4 years ago · Juan Pablo Isaza Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda