2015-03-12 20 views
9

Obecnie używam multer dla multipart/form-data w aplikacji node.js wraz z body-parser.Błąd: nieprawidłowy json z multer i analizatorem treści

Próbowałem POST danych formularzy za pomocą POSTMAN, ale otrzymuje ten błąd.

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) 

ten sposób dodałem multer i ciało-parser w moich 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/'})); 

myślę, że to prawdopodobnie dlatego multer nie działa. Po usunięciu analizatora treści i ponowie próbę, pokazuje pusty json dla console.log(req.body) i console.log(req.files).

Uwaga: body-parser wersja jest 1.12.0 i multer wersja jest 0.1.8.

Odpowiedz

16

Problem nie polega na tym, że masz obie biblioteki: body-parser i multer. Jeśli próbujesz opublikować post z rozszerzeniem przeglądarki, takim jak listonosz, upewnij się, że jest multipart/form-data, a nie application/json w nagłówku żądania.

+0

Użyj "danych wieloczęściowych/formularzy" – sidonaldson

+0

Oszczędzasz życie! –

+0

Dzięki Arkar, która bardzo pomaga ... –