当使用“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!');
});
为什么第一种方式失败,第二种方式成功?
亚龙