Я пытаюсь написать простой экспресс-сервер, который принимает входящий JSON (POST), анализирует JSON и присваивает тело запроса. Уловка я не могу использовать bodyparser. Ниже мой сервер с простой функцией промежуточного программного обеспечения передается в app.useРазбор JSON в Express без BodyParser
Проблема: всякий раз, когда я отправляю фиктивные POST-запросы на свой сервер с суперагент (пакет npm, который позволяет отправлять JSON через терминал), мой сервер отключается. Я написал HTTP-сервер аналогичным образом, используя req.on ('data') ... поэтому я в тупике. Любой совет?
const express = require('express');
const app = express();
function jsonParser(req, res, next) {
res.writeHead(200, {'Content-Type:':'application/json'});
req.on('data', (data, err) => {
if (err) res.status(404).send({error: "invalid json"});
req.body = JSON.parse(data);
});
next();
};
app.use(jsonParser);
app.post('/', (req, res) => {
console.log('post request logging message...');
});
app.listen(3000,() => console.log('Server running on port 3000'));
По какой-то странной причине JSON.parse бросает исключение, потому что данные пусты в конце, но если я его поймаю, req.rawBody получит текст JSON позже. – Michael