У меня есть простой экспресс-сервер, настроенный так...
const PORT = process.env.PORT || 3001;
import express from "express"; // eslint-disable-line
import bodyParser from 'body-parser';
export class BaseApp{
constructor(port){
const p = port || PORT;
this.express = express();
this.express.use(bodyParser.json());
this.express.listen(p, (err)=>{
if (err) throw err;
return console.info(`Healthcheck server is listening on ${port}`);
});
}
}
const SearchRoute = function(app) {
const Router = express.Router();
const HANDLE_POST = (req, res)=> {
console.info("Metadata is " + JSON.stringify(req.body));
res.send("done");
};
Router.post("/", HANDLE_POST);
app.use("/search", Router);
};
export class SearchApp extends BaseApp{
constructor(){
super(PORT);
SearchRoute(this.express);
}
}
new SearchApp(); // eslint-disable-line no-new
Когда я запускаю и использую почтальон (в необработанном виде с выбранным приложением/json) и отправляю через почту, отображается терминал...
Metadata is {}
хотя мое тело было...
Я подтвердил, что мой заголовок правильный
Почему тело пустое?
Также curl отлично работает, поэтому я меняю заголовок

Попробуйте установить заголовок типа контента с помощью «application/json» вместо «application/javascript».
Еще одно замечание: если я конвертирую в
application/x-www-form-urlencoded, он работает, но мне нужен json.