我试图在中间件中访问请求的正文,以便仅在特定字段发生更改时才执行请求(仅在上传新图片时才释放图片),但是我无法访问该正文
我尝试安装和配置cors以及在特定于路由的文件中重新配置body-parser
,以及对代码进行混洗,但没有任何帮助(这是其他问题的建议)
const express = require('express');
const router = express.Router();
const bodyParser = require('body-parser');
const multer = require('multer');
const glob = require('glob');
const fs = require('fs');
const _ = require('lodash');
const urlencodedParser = bodyParser.urlencoded({ extended: false });
//MIDDLEWARE
router.use("/immobili/:_id/edit", urlencodedParser, function (req, res, next) {
console.log(req.body);
const requestedId = req.params._id;
Immobile.findOne({ _id: requestedId }, (err, immobile) => {
if (err) return console.error(err);
immobile.immagini = [];
cancellaFoto(immobile);
if (this.cancellato) {
return setTimeout(next, 1000);
} else {
return console.log("Aborted");
}
});
});
//EDIT PUT ROUTE
router.put("/immobili/:_id/edit", upload.array('immaginePrincipale', 30), function (req, res) {
const requestedId = req.params._id;
const dati = req.body;
const proprietaImmagini = req.files;
const immagini = proprietaImmagini.map(function (immagine) {
//console.log(immagine.path);
return immagine.path;
});
let vetrina;
req.body.vetrina === 'on' ? vetrina = true : vetrina = false;
Immobile.findOneAndUpdate({ _id: requestedId }, {
numeroScheda: dati.numeroScheda,
//[... ALL DATA ... ]
immagini: immagini,
}, function (err, updatedImmobile) {
if (err) return console.error(err);
res.redirect("/immobili/" + req.body.categoria + "/" + _.toLower(req.body.localita) + "/" + requestedId);
});
});
这是我用来发送数据的表格:
<form action="/immobili/<%= immobile._id %>/edit?_method=PUT" method="POST"
enctype="multipart/form-data">
//[ ... FORM INPUTS ... ]
<input type="file" name="immaginePrincipale" multiple="multiple" id="immaginePrincipale"></input>
<input type="submit" value="Pubblica">
</form>
我希望可以在中间件中访问请求的正文,但是我只会得到一个空对象。