2015-03-12 7 views
9

В настоящее время я использую multer для multipart/form-data в приложении node.js вместе с body-parser.Ошибка: недействительный json с multer и body-parser

Я попытался установить 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 и тело-анализатор в моем 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/'})); 

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

Примечание: body-parser версия 1.12.0 и multer версия 0.1.8.

ответ

16

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

+0

Использование «multipart/form-data» – sidonaldson

+0

Life saver you are! –

+0

Спасибо Аркар, которые очень помогают ... –