Ошибка: неверный json с multer и body-parser

В настоящее время я использую multer для multipart/form-data в приложении node.js вместе с тело-парсер.

Я попытался выполнить POST форму данных с помощью POSTMAN, но получил эту ошибку.

Error: invalid json
    at parse (/Users/k/Documents/application/node_modules/body-parser/lib/types/json.js:79:15)
    at /Users/k/Documents/application/node_modules/body-parser/lib/read.js:102:18
    at IncomingMessage.onEnd (/Users/k/Documents/application/node_modules/body-parser/node_modules/raw-body/index.js:136:7)
    at IncomingMessage.g (events.js:199:16)
    at IncomingMessage.emit (events.js:104:17)
    at _stream_readable.js:908:16
    at process._tickDomainCallback (node.js:381:11)

Вот как я добавил multer и body-parser в свой server.js

var express = require('express');
var mongoose = require('mongoose');
var bodyParser = require('body-parser');
var multer = require('multer');

var app = express();

app.use(bodyParser.urlencoded({extended: true}));
app.use(bodyParser.json());
app.use(multer({ dest: './uploads/'}));

Я думаю, что это, вероятно, потому, что мультер не работает. Когда я удаляю body-parser и пытаюсь снова, он показывает пустой json для console.log(req.body) и console.log(req.files).

Примечание. Версия body-parser1.12.0, а версия multer0.1.8.


person Khay    schedule 12.03.2015    source источник


Ответы (1)


Проблема не в том, что у вас есть обе библиотеки body-parser и multer. Если вы пытаетесь опубликовать сообщение с расширением браузера, таким как postman, убедитесь, что Content-Type равно multipart/form-data, а не application/json в заголовке вашего запроса.

person Arkar Aung    schedule 12.03.2015
comment
Использовать multipart/form-data - person sidonaldson; 14.04.2015
comment
Как этого добиться с помощью application/json? - person Sunil Sharma; 27.01.2016