404 Не найдено на экспресс-маршруте при отправке файлов - PullRequest
0 голосов
/ 18 мая 2018

Мне трудно исправить эту ошибку 404 Не найдено, поэтому я отправляю файлы на мой экспресс-сервер с помощью API FormData без использования формы.Всякий раз, когда я запускаю запрос с файлами в полезной нагрузке, я получаю 404 (Not Found) SyntaxError: Unexpected token < in JSON at position 0, но если я запускаю запрос без отправки какого-либо файла, он дает мне ответ правильно ... кто-нибудь может помочь?контроллер

   update: (req, res) => {
       console.log(req.files)
        res.json({
            status: 'test',
            code: 200
        })
    }

route

router.post('/update', account.update);

мой запрос

 saveUpdate = () => {
        const formData = new FormData();
        const { user, Auth } = this.props;
        formData.append('user_id', user.id);
        formData.append('photo', this.photo_ref.files[0]);
        formData.append('cover', this.cover_ref.files[0]);

        Auth.fetch('/update', {
            method: "POST",
            credentials: 'same-origin',
            body: formData,
        })
        .then(res => {
            if(res.code === 200){
                console.log(res)
            }
        })
        .catch(err => console.log(err));
    }

devtools дает мне правильную информацию о моем запросе, если я отправляю запрос с файлами, он показывает полезную нагрузкуправильно, тип содержимого также правильный, который является multipart / form-data, но он все еще дает мне вышеуказанную ошибку.Если я не отправляю никаких файлов, я получаю правильный ответ от сервера, какая идея?

Я использую пакет multer. В этом порядке

server.use(express.static(path.resolve(__dirname, '../public')));
server.use(multer({storage}).array('image', 12));
server.use(bodyParser.urlencoded({ extended: false }));
server.use(bodyParser.json());
server.use('/', router);

1 Ответ

0 голосов
/ 18 мая 2018

Кажется, вы неправильно указали параметр name.Вы можете добавить эти два изображения с тем же именем

Вместо этого

 formData.append('photo', this.photo_ref.files[0]);
 formData.append('cover', this.cover_ref.files[0]);

Вы можете сделать

 formData.append('image', this.photo_ref.files[0]);
 formData.append('image', this.cover_ref.files[0]);
...