NodeJS 请求文件的多个给予未定义

rlcwz9us  于 2022-12-03  发布在  Node.js
关注(0)|答案(4)|浏览(408)

我正在使用node js制作api来上传文件。
i将multer用于句柄multipart/form-data,但当i console.log(req.file)时,它显示为未定义

路线

const uploadController = require('../controller/upload.server.controller');
const multer = require('multer');

const upload = multer({ dest: 'uploads/' });

/**
 * Routes
 */
module.exports = function (app) {
  app
    .route('/api/upload')
    .post(upload.single('image'), uploadController.upload);
};

控制器

exports.upload = async function (req, res) {
    console.log(req.file);
};

我对 Postman 的请求

zphenhs4

zphenhs41#

尝试使用req.file,如文档源所示:multer

vngu2lb8

vngu2lb82#

// init
const multer = require('multer');
const path = require('path');

// "images" are the folder name
const fileStorage = multer.diskStorage({
   destination: (req, file, cb) => {
     cb(null, 'images');
   },
});
// put this to config the multer
app.use(multer({ storage: fileStorage }).single('image'));
// this is for serving file staticly with "path" module 
app.use('/images', express.static(path.join(__dirname, 'images')));

此外,请确保在form标记中写入enctype=multipart/form-data,而不是在input标记中写入,并在input标记中添加type=file属性

wyyhbhjk

wyyhbhjk3#

试试这个:

app.post('/api/upload', upload.single('image'), function (req, res, next) {
  console.log(req.file);
})
wh6knrhe

wh6knrhe4#

我也遇到过类似的问题。每次我重新启动我的服务器, Postman 提供的请求文件没有定义。我想也许我犯了一个错误,但我不知道是什么错误。
然后,我尝试在Postman中创建一个新的请求,当我请求Req.File时,它工作得很好。我正在试图找出Postman出了什么问题,或者我在发送请求时犯了错误。

相关问题