Ошибка: неверный json с multer и body-parser
В настоящее время я использую Multer для multipart/form-data
в приложении node.js вместе с 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 и 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/'}));
Я думаю, что это, вероятно, потому что Multer не работает. Когда я удаляю body-parser и пытаюсь снова, он показывает пустой JSON для console.log(req.body)
а также console.log(req.files)
,
Замечания: body-parser
версия 1.12.0 и multer
версия 0.1.8.
1 ответ
Решение
Проблема не в том, что у вас есть обе библиотеки body-parser
а также multer
, Если вы пытаетесь опубликовать с расширением браузера, как почтальон, пожалуйста, убедитесь, что Content-Type
является multipart/form-data
и не application/json
в заголовке вашего запроса.