使用一个简单的“ multer”库示例来设置服务器并将一个multer中间件添加到一个文件中时,它将起作用。 (我正在使用邮递员发送POST请求-表单数据和使用'image'键发送的文件)。
当我尝试在我的Express项目中使用相同的库时,它不起作用。 (我没有收到任何错误,甚至创建了目标文件夹,但没有上传文件)。
在我的中间件文件夹中添加:
file-upload.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,但目标文件夹中未保存任何文件。
当我运行单个文件时,它会起作用:
test-upload.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!');
});
为什么第一种方法失败而第二种方法成功?
亚伦
答案 0 :(得分:0)
好的,我发现了错误。
这是因为在app.js中,我已经有了库multer的基础。
express_busboy.extend(app,{
upload:true
});
如果我将其注释掉,则效果很好。