[英]formdata can only post files correctly but erase all strings. (using node, express, and multer)
[英]How to capture FormData on a post request using Node/Multer
我基本上需要在 mongodb 模式上保存一个 formData,使用 nodejs + express 作为后端,multer 作为中间件,这个 formData 由一个字符串和一个 blob 组成
我需要捕获 blob 和字符串并以某种方式保存在数据库中,但现在我什至无法在后端捕获
我的 req.body 和我的 req.files 显示为未定义
提前致谢
角度邮政服务
addPost(message, blob): Observable<any> {
var fd = new FormData();
fd.append('id', message);
fd.append('invoiceFile', blob);
let httpHeaders = new HttpHeaders({
Accept: 'multipart/form-data'
});
let options = {
headers: httpHeaders
};
return this.http.post(`${addPost}`, fd, options);
}
我的节点 server.js
const express = require('express');
const mongoose = require('mongoose');
const cookieParser = require('cookie-parser');
// const morgan = require('morgan');
const app = express();
const cors = require('cors');
var fs = require('fs');
const dbConfig = require('./config/env');
app.options('*', cors());
app.use(cors({ credentials: true, origin: true }));
app.use((req, res, next) => {
res.header('Access-Control-Allow-Origin', '*');
res.header('Access-Control-Allow-Credentials', 'true');
res.header('Access-Control-Allow-Methods', 'GET', 'POST', 'DELETE', 'PUT');
res.header(
'Access-Control-Allow-Headers',
'Origin, X-Requested-With, Content-Type, Accept'
);
next();
});
app.use(express.json({ limit: '50mb' }));
app.use(express.urlencoded({ extended: true, limit: '50mb' }));
app.use(logger('dev'));
mongoose.Promise = global.Promise;
mongoose.connect(
dbConfig.url,
{ useNewUrlParser: true }
);
const auth = require('./routes/authRoutes');
const posts = require('./routes/postRoutes');
app.use(cookieParser());
app.use(auth);
app.use(posts);
app.listen(3000, () => {
console.log('Runnning on port 3000');
});
我的路线
router.post('/api/post/add-post', upload.any(), function(req, res) {
console.log(req.body); // appear as undefined
console.log(req.file); // appear as undefined
res.status(204).end();
});
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.