Я пытаюсь сохранить файлы в локальном хранилище, используя Multer, и я хочу указать имя файла на основе полей в req.body.
По сути, имя файла должно быть что-то вроде contractorId-projctId.Но VS Code показывает ошибку, что свойство body не определено в req, и когда я отправляю файл, оно сохраняет его как undefined-undefined.png.Вот скриншот моего кода.Я добавил этот снимок экрана, чтобы подчеркнуть тот факт, что VS Code кричит о req.body.
Вот код для uploadFiles.js
// @ts-check
import express from 'express';
import bodyParser from 'body-parser';
import router from './routes/router';
const app = express();
// Setting up middleware
app.use(bodyParser.urlencoded({ extended: true }));
app.use(bodyParser.json({ limit: '15mb' }));
// Setting up routes
app.use('/', router);
// Error handling
app.use('*', (req, res) => {
res.status(404).json({
code: 404,
error: 'Not found',
msg: "The resource you're looking for doesn't exist",
});
});
export default app;
Я искал переполнение стека для похожих вопросов, но большинство вопросов связано с загрузкой файлов.Файл загружается просто отлично, и я проверил, что req.body тоже нормально, отправив ответ почтальону.Вот запрос.
Вот мой код в router.js.
// @ts-check
import Router from 'express';
import upload from '../configs/filesUploads';
const router = Router();
router.get('/', (req, res) => {
res.json({ Okay: true });
});
router.post('/uploads', (req, res) => {
upload(req, res, (err) => {
if (err) {
res.json({
error: err,
});
} else {
console.log(req.file);
res.json({ test: 'Meh', body: req.body });
}
});
});
export default router;
Вот app.js
// @ts-check
import express from 'express';
import bodyParser from 'body-parser';
import router from './routes/router';
const app = express();
// Setting up middleware
app.use(bodyParser.urlencoded({ extended: true }));
app.use(bodyParser.json({ limit: '15mb' }));
// Setting up routes
app.use('/', router);
// Error handling
app.use('*', (req, res) => {
res.status(404).json({
code: 404,
error: 'Not found',
msg: "The resource you're looking for doesn't exist",
});
});
export default app;