Estoy trabajando en el backend de una aplicación MERN donde, usando cartero, tengo que cargar archivos jpg/jpeg... que se almacenan primero en un directorio "archivos" en mi proyecto y luego en la colección de archivos en MongoDB con ID como nombre ([id].jpg) . Tengo que usar fs.readFile() y fs.writeFile() para hacerlo, pero el resultado máximo que obtuve es "indefinido". Los archivos se almacenan temporalmente en una carpeta de mi PC y no sé cómo cambiar esto. Además tengo que obtener la extensión del archivo, y me sugirieron usar const array = file.name.split(“.”); const extension = array[array.length - 1].toLowerCase();
ESTE ES MI MODELO:
const mongoose = require('mongoose'); const Schema = mongoose.Schema; const FileSchema = new Schema({ fileName: { type: String, required: true, }, fileType: { type: String, required: true, }, extension: { type: String, required: true, }, size: { type: String, required: true, }, }); module.exports = File = mongoose.model('file', FileSchema);ESTE ES MI ARCHIVO SUBIDO:
const File = require("../../models/File"); const express = require("express"); const formidableMiddleware = require("express-formidable"); const app = express(); app.use(formidableMiddleware()); const fs = require("fs"); module.exports = async (req, res) => { const test = ({ file } = req.files); console.log("the files store temporarly here", test["file"]["path"]); try { fs.readFile("C:\Users\grazi\AppData\Local\Temp", 'utf-8', (err, data) => { console.log(data); }); } catch (e) { console.log(e); } try { fs.writeFile("C:\Users\grazi\wa\Service-stats2\backend\files", 'C:\Users\grazi\wa\Service-stats2\backend\models\File.js', (err, data) => { console.log(data); }); } catch (e) { console.log(e); } };SI ENVIO UNA SOLICITUD CON CARTERO ESTA ES LA SALIDA DE MI TERMINAL:
the files store temporarly here: C:\Users\grazi\AppData\Local\Temp\upload_753ecef1d508a15025b20a29e07e65a3 undefined undefined