Привет, я загружаю изображение с помощью Multer. когда я выбираю изображение, оно сохраняется в внутренней папке, которая называется загрузками. Bt я хочу сохранить его в базе данных mongodb и отобразить это изображение на интерфейсе с помощью anguler. Я не знаю, как это сделать. Пожалуйста, помогите решить эту проблему. вот мой api. js
// set storage engine
const storage = multer.diskStorage({
destination: function (req, file, cb) {
cb(null, './uploads/')},
filename: function (req, file, cb) {
cb(null, Date.now() + '.' + file.fieldname.split('/')[1])
}
})
// initialize upload
const upload = multer({ storage: storage })
router.post('/profile',upload.single('image'), verifyToken, (req, res) => {
res.json({
imagUrl:'http://localhost3000/uploads'+ req.file.filename})
const userId = req.userId;
User.findOne({_id: userId}, (error, user) => {
if (error) {
console.log(error)
} else {
user.save({$set: {image: req.file}})
res.status(200).send(user)
}
})
})
вот моя услуга. js
private profileUrl = "http://localhost:3000/api/profile/";
uploadImage(image: any) {
const data = new FormData()
data.append('image', image)
return this.http.post<any>(this.profileUrl, data)
}
вот мой компонент. Ts
uploadImage(event: any) {
this.auth.uploadImage(event.target.files[0])
.subscribe((res) =>{
console.log(res)
this.imgUrl = res.imagUrl
})
}
вот мой компонент. html
<input type="file" id="imgUrl" class="form-control-file" (change)="uploadImage($event)">
<img *ngIf="imgUrl" src="{{imgUrl}}" alt="imgUrl" height="200px">