Buenas, estimado Uriel, no logro enviar por medio de Postman la imagen, aunque ya quité el encabezado de Content-Type, la versión actual de Postman genera otros 7 mas, y uno llamado Postman-Token que no se puede quitar. Ya no se que mas intentar, estoy frenado con el curso y ya no lo puedo seguir de mi lado.
Esto es lo que genera el cmd:
{}
POST /places - - ms - -
Error: Place validation failed: title: Path title
is required.
at ValidationError.inspect (C:\Users\Michael Gomez V\Documents\places\api\node_modules\mongoose\lib\error\validation.js:49:26)
at formatValue (node:internal/util/inspect:780:19)
at inspect (node:internal/util/inspect:345:10)
at formatWithOptionsInternal (node:internal/util/inspect:2165:40)
at formatWithOptions (node:internal/util/inspect:2027:10)
at console.value (node:internal/console/constructor:324:14)
at console.log (node:internal/console/constructor:360:61)
at C:\Users\Michael Gomez V\Documents\places\api\controllers\PlacesController.js:38:13
at processTicksAndRejections (node:internal/process/task_queues:96:5) {
errors: {
title: ValidatorError: Path title
is required.
at validate (C:\Users\Michael Gomez V\Documents\places\api\node_modules\mongoose\lib\schematype.js:1346:13)
at SchemaString.SchemaType.doValidate (C:\Users\Michael Gomez V\Documents\places\api\node_modules\mongoose\lib\schematype.js:1330:7)
at C:\Users\Michael Gomez V\Documents\places\api\node_modules\mongoose\lib\document.js:2835:18
at processTicksAndRejections (node:internal/process/task_queues:78:11) {
properties: [Object],
kind: ‘required’,
path: ‘title’,
value: undefined,
reason: undefined,
[Symbol(mongoose:validatorError)]: true
}
},
_message: ‘Place validation failed’
}
-
check_circle_outlineMódulo 1 | 7 clases
Introducción
expand_more -
check_circle_outlineMódulo 2 | 6 clases
Conceptos Fundamentales
expand_more -
check_circle_outlineMódulo 3 | 10 clases
Bases de Datos y CRUDs
expand_more -
check_circle_outlineMódulo 4 | 15 clases
Más allá de lo básico
expand_more-
done_all
Clase 1
Crear rutas
-
done_all
Clase 2
Controladores
-
done_all
Clase 3
Paginación
-
done_all
Clase 4
Qué es un Middleware en Express
-
done_all
Clase 5
Middleware para búsqueda individual
-
done_all
Clase 6
Configurar cloudinary
-
done_all
Clase 7
Definir archivo con secretos
-
done_all
Clase 8
Subir imágenes a cloud
-
done_all
Clase 9
Subir imágenes pt 2
-
done_all
Clase 10
Mover imágenes a la nube
-
done_all
Clase 11
Guardar información de las imágenes en la base de datos
-
done_all
Clase 12
Generar SEO URLs
-
done_all
Clase 13
Evitar colisiones con las SEO URls
-
done_all
Clase 14
Cambiar búsqueda de ID a Slug
-
done_all
Clase 15
Manejo de parámetros
-
-
check_circle_outlineMódulo 5 | 6 clases
Autenticación de usuarios
expand_more -
check_circle_outlineMódulo 6 | 5 clases
Relaciones básicas uno a muchos
expand_more -
check_circle_outlineMódulo 7 | 9 clases
Relaciones muchos a muchos
expand_more -
check_circle_outlineMódulo 8 | 11 clases
Seguridad en servicios web
expand_more
8 comentario(s)
TypeError [ERR_INVALID_ARG_TYPE]: The "path" argument must be of type string. Received an instance of Object at validateString (internal/validators.js:117:11) at basename (path.js:671:5) at post (C:\Users\ACFC\Desktop\placesproject\api\node_modules\cloudinary\lib\uploader.js:436:84) at call_api (C:\Users\ACFC\Desktop\placesproject\api\node_modules\cloudinary\lib\uploader.js:424:16) at Object.upload (C:\Users\ACFC\Desktop\placesproject\api\node_modules\cloudinary\lib\uploader.js:47:10) at C:\Users\ACFC\Desktop\placesproject\api\models\uploader.js:9:29 at new Promise (<anonymous>) at module.exports (C:\Users\ACFC\Desktop\placesproject\api\models\uploader.js:8:12) at saveImage (C:\Users\ACFC\Desktop\placesproject\api\controllers\PlacesController.js:82:13) at Layer.handle [as handle_request] (C:\Users\ACFC\Desktop\placesproject\api\node_modules\express\lib\router\layer.js:95:5) at next (C:\Users\ACFC\Desktop\placesproject\api\node_modules\express\lib\router\route.js:137:13) at C:\Users\ACFC\Desktop\placesproject\api\controllers\PlacesController.js:37:9 at processTicksAndRejections (internal/process/task_queues.js:97:5) { code: 'ERR_INVALID_ARG_TYPE' }
Aqui mi funcion
el modelo
const cloudinary = require('cloudinary');
function multerMiddleware(){
function saveImage(req,res){
function create(req,res,next){
y en al consola obtengo POST /places 500 78.333 ms - 2
Creo que es un error de Cloudinary de permisos o no si es camio de versión del api.
Uriel y comapñeros agradezco cualquier ayuda.
(node:17504) DeprecationWarning: Mongoose: mpromise (mongoose's default promise library) is deprecated, plug in your own promise library instead: http://mongoosejs.com/docs/promises.html
Al subir la imagen en cloudinary manda un error pero la imagen si se sube el problema es que al mandar el error no muestra la respuesta en Json de los datos que se crearon, la respuesta solo es un {} y en terminal muestra el siguiente error.
Error: Error with cloudinary at /Applications/MAMP/htdocs/codigo_facilito/places/api/models/Uploader.js:13:14 at IncomingMessage.<anonymous> (/Applications/MAMP/htdocs/codigo_facilito/places/api/node_modules/cloudinary/lib/uploader.js:498:51) at emitNone (events.js:91:20) at IncomingMessage.emit (events.js:185:7) at endReadableNT (_stream_readable.js:974:12) at _combinedTickCallback (internal/process/next_tick.js:80:11) at process._tickCallback (internal/process/next_tick.js:104:9)
Hola! estoy teniendo problemas al subir la imagen, en Postman me regresa el error de could not save place, no estoy seguro cual sea mi error.
comparto el código, por si alguien puede ver cual es el error que estoy teniendo
function create(req,res,next) { //create new place Place.create({ title: req.body.title, description: req.body.description, acceptsCreditCard: req.body.acceptsCreditCard, openHour: req.body.openHour, closeHour: req.body.closeHour }).then(doc=>{ res.place = doc; next(); }).catch(err=>{ next(err); }); }
// save image function saveImage(req,res) { if(req.place){ if (req.files && req.files.avatar) { const path = req.files.avatar[0].path uploader(path).then(result=>{ console.log(result); res.json(req.place); }).catch(err=>{ console.log(err); res.json(err); }) } }else { res.status(422).json({ error: req.error || 'Could not save place' }); } }
module.exports = {index, create, show, update, destroy, find, multerMiddleware, saveImage};
En consola me esta apareciendo esto: (node:10044) DeprecationWarning: Mongoose: mpromise (mongoose's default promise library) is deprecated, plug in your own promise library instead: http://mongoosejs.com/docs/promises.html
Clase 27