tengo un archivo ./models/Image.js
const { Schema, model } = require('mongoose'); const imageSchema = new Schema({ title: {type: String}, description: {type: String}, author:{type:String}, filename: {type: String}, path: {type: String}, originalname: {type: String}, mimetype: {type: String}, size: { type: Number}, created_at: {type: Date, default: Date.now()}, authorname:{type:String} }); module.exports = model('Image', imageSchema);Tengo otro archivo ./models/User.js
const mongoose = require('mongoose'); const UserSchema = new mongoose.Schema({ name :{type:String,required : true} , email :{type : String,required : true} , password :{type : String,required : true} , date :{type : Date,default : Date.now} }); const User= mongoose.model('User',UserSchema); module.exports = User;y una función dentro de rutas/usuario
router.post('/upload', async (req, res) => { const image = new Image(); image.title = req.body.title; image.description = req.body.description; image.filename = req.file.filename; image.path = '/img/uploads/' + req.file.filename; image.originalname = req.file.originalname; image.mimetype = req.file.mimetype; image.size = req.file.size; //image.authoremail= User.req.email; // what should i do here await image.save(); res.redirect('/user/feed'); });Lo que quiero es poner el nombre y el correo electrónico de los usuarios dentro del esquema de la imagen para que pueda compararlo para fines posteriores, por ejemplo, en una página del panel de control, al usuario solo se le muestra la imagen que ha subido, pero dentro de la página 'alimenta' las imágenes de todos los usuarios. se muestra con el nombre respectivo
En mi opinión, debe agregar el nombre de usuario y el campo de correo electrónico en el esquema de la imagen. luego establezca requerido = falso, si no es necesario para todos los casos o puede agregarlo sin personalizar el esquema estableciendo estricto = falso en el esquema. le permite guardar o actualizar el documento en su caso.
esta es la respuesta que muestra cómo establecer estricto = falso https://stackoverflow.com/a/50935227/15072782
Puede cambiar el esquema de la imagen utilizando el concepto de documento de referencia. Para que solo pueda almacenar la identificación del usuario.
const imageSchema = new Schema({ title: {type: String}, description: {type: String}, author:{type:String}, filename: {type: String}, path: {type: String}, originalname: {type: String}, mimetype: {type: String}, size: { type: Number}, created_at: {type: Date, default: Date.now()}, authorname: { // update here type: Schema.Types.ObjectId, ref: 'User' } }); module.exports = model('Image', imageSchema); const mongoose = require('mongoose'); const UserSchema = new mongoose.Schema({ name :{type:String,required : true} , email :{type : String,required : true} , password :{type : String,required : true} , date :{type : Date,default : Date.now} }); const User= mongoose.model('User',UserSchema); module.exports = User;