Проблема с multer и fs при загрузке файла - PullRequest
0 голосов
/ 04 апреля 2020

Почему не работает? Я пытаюсь установить собственный путь загрузки для multer каждый раз, когда я загружаю что-то. когда я делаю запрос в первый раз. это дает ошибку. но это создает путь к файлу. Но это дает ошибку. но когда я делаю тот же пост запрос снова. он успешно загружен.

const express = require('express');
const bodyParser = require('body-parser');
const app = express();
const multer = require('multer');
const fs = require('fs');
const router = express.Router();
const Topic = require('../models/Topic');
app.use(bodyParser.json());

router.post("/file/:topicname/:stepname", async (req, res) => {
    const filePath = './uploads/' + req.params.topicname + "/" + req.params.stepname;
    console.log(filePath)
   await fs.mkdir(filePath, { recursive: true }, (err) => {
        if (err)
            throw err;
    })
    const storage = multer.diskStorage({
        destination: function (req, file, cb) {
            cb(null, filePath);
        },
        filename: function (req, file, cb) {
            cb(null, file.originalname);
        }
    });
    const upload = multer({ storage: storage }).single("demo_image");
   await  upload(req, res, (err) => {
        if (err) {
            res.status(400).send("Something went wrong!");
            console.log(err)
        }
        res.send(req.file);
    });
});

Я хочу, чтобы он сначала создал каталог, а затем загрузил файл.

...