0

当使用“multer”库的一个简单示例时,它设置了一个服务器并在一个文件中添加了一个 multer 中间件,它可以工作。(我正在使用 Postman 发送一个 POST 请求 - 使用“图像”键发送文件的表单数据)。

当我尝试在我的 express 项目中使用相同的库时,它不起作用。(我没有收到任何错误,甚至创建了目标文件夹,但没有上传文件)。

在我的中间件文件夹中,我添加了:

文件上传.js

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


exports.uploadSingle = upload.single('image');

api.js

let router = require('express').Router();
const upload = require('../middleware/file-upload');

router.post('/upload', upload.uploadSingle,function (req, res, next) {

    res.json({"finished":"yes"});
});

发布请求返回 200OK 但没有文件保存在目标文件夹中。

当我运行这个单个文件时,它可以工作:

测试上传.js

var express = require('express'),
    bodyParser = require('body-parser'),
    multer = require('multer');

var app = express();

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


app.post('/upload', upload.single('image'), function (req, res, next) {
    res.send("Uploaded!");
});

app.listen(3000, function () {
    console.log('Example app listening on port 3000!');
});

为什么第一种方式失败,第二种方式成功?

亚龙

4

1 回答 1

0

好的,我发现了错误。

这是因为在 app.js 中,我已经基于 multer 库。

express_busboy.extend(app,{
  upload:true
});

如果我将其注释掉,它可以正常工作。

于 2019-09-03T15:58:19.910 回答