#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}