@bpGusar
*spoiler*

Как после загрузки картинкаи на сервер с помощью Express и получить ее URL?

Файл успешно загружается но когда я пытаюсь получить к нему доступ из браузера мне выдает ошибку

По ссылке localhost:5000/backend/server/files/posters/9d31a6...
я получаю
Cannot GET /backend/server/files/posters/9d31a6faca5043ec4d6d7111cf67ed85.png

И если даже убрать backend из строки (это по сути рут папка сервака) всё равно не открывает.

В чем дело?
  • Вопрос задан
  • 88 просмотров
Пригласить эксперта
Ответы на вопрос 1
IDONTSUDO
@IDONTSUDO
ЧСВ программистов идет в комплекте с первой IDE.
Дело в обработке ошибок. Или в том что ты не подключил роутер.

Примерный метод контроллера.

//поиск документа в котором лежит  фото
exports.workerById = (req, res , next , id) =>{
    Worker.findById(id)
    .exec((err, worker)=>{
        if(err || !worker){
            return res.status(400).json({
                error: "Worker not found"
            })
        }
        req.worker  = worker 
        next()
    })
}
//Выдача фото.
exports.workerPhoto = (req,res, next) =>{
    if(req.worker.photo.data){
        res.set(("Content-Type", req.worker.photo.contentType))
        return res.send(req.worker.photo.data)
    }
    next()
}
/*то есть сначало оно идет по пути user/photo/:userId
после того как находит колекцию юзера. Передает данные о нем в req и шагает дальше. 
На следующем контролере мы просто выдаем фото
*/
//роутер для общей картины
router.get('/user/photo/:workerById', workerPhoto)
router.param('workerById',workerById)
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы