“ multer”只能在示例代码中使用,而不能在我的项目中使用

时间:2019-09-03 14:42:31

标签: node.js multer

使用一个简单的“ 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!');
});

为什么第一种方法失败而第二种方法成功?

亚伦

1 个答案:

答案 0 :(得分:0)

好的,我发现了错误。

这是因为在app.js中,我已经有了库multer的基础。

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

如果我将其注释掉,则效果很好。