#node.js #mongodb
Вопрос:
Мне нужно связать изображение с пользователем с помощью файла.путь в мультере, но он просто не сохраняет фотографию вот мой код:
router.post('/register',upload.single('profilepic'), async (req, res) =gt;{ const {email} = req.body try{ if(req.file != undefined){ const post = await Post.create({ name: req.file.originalname, size: req.file.size, key: req.file.filename, photo: req.file.path, url: '' }) console.log(req.file) //console.log(req.body) if (await User.findOne({ email })) return res.status(400).send({error: 'User already exists'}) const user = await User.create(req.body) user.password = undefined user.photo = req.file.path return res.send({ user, token: generateToken({ id: user.id}) })
Как вы можете видеть, я передаю user.photo как req.file.путь, но он на самом деле не сохраняет его, он возвращает мне путь, который я загружаю, но он не сохраняет, вот моя модель пользователя:
const UserScheme = new mongoose.Schema({ title:{ type: String, required: true, }, description:{ type: String, required: false }, email:{ type: String, unique :true, required: true, lowercase: true }, photo:{ type:String, required: false, select:true }, password:{ type :String, required: true, select:false }, passwordResetToken:{ type: String, select: false }, passwordResetExpires:{ type: Date, select: false }, createdAt:{ type: Date, default: Date.now, }, })
Ответ №1:
Вам нужно добавить фотографию перед созданием пользовательского лайка
req.body.photo = req.file.path; const user = await User.create(req.body); user.password = undefined return res.send({ user, token: generateToken({ id: user.id}) // user.id or user._id ? })
Комментарии:
1. это сработало, спасибо, приятель