node.js - req.body 和 req.file 在 multer 中总是返回空
问题描述
我正在按照这个Academind 教程创建一个节点 API 端点,用于上传body-parser
用于解析json
请求和multer
解析multipart/form-data
请求的图像,但是每次我使用邮递员点击 API 时,我都会变得req.body
空虚req.file
。
这是 multer 实现看起来像
const express = require('express');
const router = express.Router();
const bcrypt = require('bcrypt');
const mongoose = require('mongoose');
const jwt = require('jsonwebtoken');
const checkAuth = require('../middleware/check-auth');
const _ = require('lodash');
const assert = require('chai').assert;
const multer = require('multer');
const storage = multer.diskStorage({
destination: function (req, file, cb) {
cb(null, './uploads/')
},
filename: function (req, file, cb) {
cb(null, new Date().toISOString() + file.filename);
},
});
const fileFilter = (req, file, cb) => {
//reject a file
if (file.mimetype === 'image/jpeg' || file.mimetype == 'image/png')
cb(null, true);
else cb(null, false);
}
const upload = multer({
storage: storage,
limits: {
fileSize: 1024 * 1024 * 5
},
fileFilter: fileFilter
});
// update profile image
router.post("/update_profile_image", upload.single('image'), (req, res, next) => {
console.log(req.file);
console.log(req.client_id)
res.send("Done")
});
module.exports = router;
这是我的文件实现app.js
app.use('/uploads', express.static('uploads'));
app.use(bodyParser.urlencoded({
extended: false
}));
app.use(bodyParser.json());
提前致谢
解决方案
推荐阅读
- laravel - Laravel 的signedURL 在使用api middlware 时生成错误的URL
- excel - Excel - 偏移到最后一个非空白单元格
- c++ - How dose base pointer address in derived class?
- c++ - DirectX 12 SDK LNK2001
- r - 排序ggplot2 geom_posterior图
- twitter-bootstrap - 为什么导航栏中的这个按钮不起作用?代码有问题吗?
- arrays - 有什么办法可以改进这个 Powershell 数组洗牌方法吗?
- javascript - 将变量发送到 JS 页面/函数
- azure-web-app-service - 如何在应用服务上禁用 HTTP 到 HTTPS 重定向?
- unity3d - Unity 游戏的主服务器 ->(主机 <-> 客户端)设置