Я использую postgresql и узел для создания приложения crud. У меня проблемы с отправкой почтовых запросов на сервер. Я попытался проверить данные ответов на почтальоне, но в данных json есть некоторые дополнительные символы.
Я попытался вставить данные непосредственно в приложение, и оно работает. Я также попытался использовать x-www-form-urlencoded, и это работает. Проблема возникает, когда я пытаюсь публиковать сообщения с использованием raw в почтальоне.
const express = require('express');
const app = express();
const pg = require("pg");
const bodyParser = require('body-parser');
app.use((req, res, next) => {
res.setHeader('Access-Control-Allow-Origin', '*');
res.setHeader('Access-Control-Allow-Headers', 'Origin, X-Requested-With, Content, Accept, Content-Type, Authorization');
res.setHeader('Access-Control-Allow-Methods', 'GET, POST, PUT, DELETE, PATCH, OPTIONS');
next();
});
app.use(bodyParser.urlencoded({ extended: true }));
app.use(bodyParser.json());
const connectionString = "postgres://postgres:dennis@localhost:5432/School";
const pool = new pg.Pool({
connectionString: connectionString
});
// app.use(express.json());
app.get('/', (req, res, next) => {
pool.connect((err, client, done) => {
if (err) {
console.log("not able to connect " + err);
res.status(400).send(err);
}
client.query("select * from student where id= $1", [1], (err, result) => {
done();
if (err) {
console.log(err);
res.status(400).send(err);
}
res.status(200).send(result.rows);
})
})
})
app.get('/students', (req, res, next) => {
pool.connect((err, client, done) => {
if (err) {
console.log('error while connecting ' + err)
res.status(400).send(err);
}
client.query("select * from student", (err, result) => {
done();
if (err) {
console.log(err)
res.status(400).send(err)
}
res.status(200).send(result.rows)
})
})
})
app.post('/add', (req, res, next) => {
pool.connect((err, client, done) => {
if (err) {
console.log(err)
return res.status(400).send('could not connect ' + err);
}
client.query("insert into student (id, name, rollnumber) values($1, $2, $3)", [req.body.id, req.body.name, req.body.rollnumber], (err, result) => {
done();
if (err) {
return console.log(err)
}
res.json({
message: req.body
})
})
})
})
app.listen(4000, () => {
console.log('working');
})
Это то, что я получаю от req.body в postman. Данные JSON содержат несколько забавных символов.
{
"message": {
"{\r\n \"id\": \"1\",\r\n \"name\": \"jjjj\",\r\n \"rollnumber\": \"7788\"\r\n }": ""
}
}
Это то, что я ожидаю получить {"id": "1", "name": "jjj", "rollnumber": "7788"}