Я пробовал гуглить учебники / примеры, но ничего не могу найти. В настоящее время я могу вставить запись JSON в первый столбец, чтобы я знал, что все подключено, но JSON не разбивается на части и не помещается в соответствующие столбцы.
Это то, что я на моем клиенте выполняется вызов с POST
async function apiAddRecordToTable(record, table_name) {
params = record;
let res = await axios.post('http://localhost:3000/tables/addrecord/' + table_name, params);
console.log('add record api called with selected tablename: ' + table_name);
console.log(res.data);
}
Это то, что я называю с (просто для проверки)
apiAddRecordToTable({
"user_id" : "110",
"user_lon" : "64",
"user_lat" : "-111",
}, 'user');
Что касается сервера, у меня есть
app.post('/tables/addrecord/user', db.addRecordUser);
и это вызывает в этой последней функции:
function addRecordUser(request, response) {
console.log('into final add record user method');
console.log(request);
const rec = request.body;
pool.query('INSERT INTO user_table VALUES ($1)', [rec], (error, results) => {
if (error) {
throw error
}
console.log(results);
response.status(201).send('Row added')
})
}
Окончательный результат в таблице выглядит так:
USER ID | USER_LON | USER_LAT
{"user_id":"110","user_lon":"64","user_lat":"-111"}, <null>, <null>
Я понимаю, что, скорее всего, вставка всю запись из-за аргумента $ 1, но я пробовал так много вариантов и искал, как вставляется json, но не смог заставить его работать дальше этого. Как я могу сделать так, чтобы это выглядело как
USER ID | USER_LON | USER_LAT
110, 64, -111