Загрузка изображений в NodeJS

#node.js #express #multer #serverside-javascript

#node.js #экспресс #мультер #серверная часть -javascript

Вопрос:

Я пытаюсь загрузить изображение на сервер в NodeJS с помощью multer, и я успешно справился со своей задачей, но дело в том, что я хочу отправить обратно файловый объект клиенту.

Вот фрагмент кода

 uploadRouter.route('/')
.post(authenticate.verifyUser, authenticate.verifyAdmin, upload.single('imageFile'), (req, res) => {
    res.statusCode = 200;
    res.setHeader('Content-Type', 'application/json');
    console.log(req);
    res.json(req.file); 
})
  

Когда я отправляю запрос в postman на сервер. Он показывает статус 200. Файл также загружается на сервер, но в ответе postman он отображается пустым.
Вот скриншот postman

Когда я зарегистрировал запрос.файловый объект, который отображается неопределенным

но когда я зарегистрировал объект req, вот что я получил

 IncomingMessage {
.....

    file: {fieldname: 'imageFile', originalname: 'alberto.png', encoding: '7bit', mimetype: 'image/png', destination: 'public/images', …}

.....
}
  

если этот файловый объект находится внутри объекта req, то почему я не могу получить доступ к req.file?

Комментарии:

1. Что все находится в req.file объекте? Есть ли там что-нибудь, что нельзя преобразовать в JSON? В качестве теста, если вы измените его на просто res.json(req.file.originalname) , будет ли это работать?

2. К вашему сведению, вам не нужно устанавливать StatusCode равным 200 или content-type. Оба будут установлены автоматически для вас.

3. @KrishnadasPC Я думаю, что у него другая проблема. Как вы можете видеть, его req.file значение не является неопределенным

4. когда я использовал этот res.json (req.file.originalname) Я получил эту ошибку, не удается прочитать свойство ‘originalname’ из undefined

5.Вот полный файловый объект file:{ destination:'public/images' encoding:'7bit' fieldname:'imageFile' filename:'alberto.png' mimetype:'image/png' originalname:'alberto.png' path:'public\images\alberto.png' size:25079}