首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在node.js中发布表单数据以测试multer node.js应用程序

如何在node.js中发布表单数据以测试multer node.js应用程序
EN

Stack Overflow用户
提问于 2020-07-08 10:12:22
回答 1查看 161关注 0票数 0

使用multer软件包的js应用程序。代码如下所示:

代码语言:javascript
复制
var multer  = require('multer')
var upload = multer({ dest: 'avatars' })

router.post('/users/me/avatar', upload.single('avatar'), (req, res) => {
    res.send()
})

我正在尝试使用SoapUi测试这个端点。

但是,我从节点获得了下面的响应。

Distributors\Node\task-manager\node_modules\multer\index.js:40:19):

MulterError: wrappedFileFilter的意外字段(C:\Users\pdatta\OneDrive - American )(C:\Users\pdatta\OneDrive -美国轮胎Distributors\Node\task-manager\node_modules\multer\lib\make-middleware.js:114:7) at Busboy.emit (events.js:311:20) at Busboy.emit (C:\Users\pdatta\OneDrive )-美国轮胎Distributors\Node\task-manager\node_modules\busboy\lib\main.js:38:33) at PartStream.(C:\Users\pdatta\OneDrive -美国轮胎Distributors\Node\task-manager\node_modules\busboy\lib\types\multipart.js:213:13) at PartStream.emit (events.js:311:20) at HeaderParser.(C:\Users\pdatta\OneDrive -美国轮胎Distributors\Node\task-manager\node_modules\dicer\lib\Dicer.js:51:16) at HeaderParser.emit (events.js:311:20) at HeaderParser._finish (C:\Users\pdatta\OneDrive )-美国轮胎Distributors\Node\task-manager\node_modules\dicer\lib\HeaderParser.js:68:8) at SBMH。(C:\Users\pdatta\OneDrive -美国轮胎Distributors\Node\task-manager\node_modules\dicer\lib\HeaderParser.js:40:12) at SBMH.emit (events.js:311:20) at SBMH._sbmh_feed (C:\Users\pdatta\OneDrive - American Tire Distributors\Node\task-manager\node_modules\streamsearch\lib\sbmh.js:95:16) at SBMH.push )美国轮胎Distributors\Node\task-manager\node_modules\dicer\lib\HeaderParser.js:46:19) at Dicer._oninfo (C:\Users\pdatta\OneDrive -美式轮胎Distributors\Node\task-manager\node_modules\dicer\lib\Dicer.js:197:25) at SBMH )(C:\Users\pdatta\OneDrive -美国轮胎Distributors\Node\task-manager\node_modules\dicer\lib\Dicer.js:127:10)

请帮我解决这个问题。该文件未保存在目标目录中。

如果你需要其他信息,请告诉我。

EN

回答 1

Stack Overflow用户

发布于 2020-07-08 11:17:59

尝试将此作为中间件

代码语言:javascript
复制
const multer  = require('multer')

const dirStorage =  __dirname +'/avatas';

const storageOption = multer.diskStorage({
    destination: function (req, file, cb) {
      cb(null, req.dirStorageUser);
    },
    filename: function (req, file, cb) {
      cb(null, `new_avatar.png`);
    }
});

const upload = multer({
  storage: storageOption
}).single('upload');


router.post('/users/me/avatar', uploadMiddleware, (req, res) => {
    res.send("");
})


function uploadMiddleware(req, res, next) {

    if (!fs.existsSync(dirStorage)) {
      fs.mkdirSync(dirStorage);
    }

    upload(req, res, function (err) {
      let errorMsg;
      if (err instanceof multer.MulterError) {
        errorMsg = 'Was not possible save image';
      } else if (err) {
        errorMsg = 'Something was wrong on save image';
      }
   
      if (errorMsg) {
        return res.send(errorMsg);
      }
      return res.send("success");
      //next("route");
    });

}

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62792426

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档