Этого очень легко достичь при использовании pg-prom , и вот полный код:
var cs = new pgp.helpers.ColumnSet(['name', 'email', 'website'], {table: 'table_name'});
app.get('/get', (req, res)=> {
var insert = pgp.helpers.insert(req.body, cs);
db.none(insert)
.then(()=> {
// success
})
.catch(error=> {
// error
});
});
API: приложение . get ( '/ get' , ( req , res ) => { var insert = pgp . helpers . insert ( req . body , cs ) + 'RETURNING id' ; db . many ( insert ) . then ( data => { / / success }) . catch ( error => { // ошибка }); }); "rel =" nofollow "> helpers.insert , none
Метод helpers.insert может сгенерировать INSERT
для вас полную инструкцию, правильно отформатированную.
Это не просто самый простой подход, но он также является самым гибким, так как вам не нужно ничего менять, чтобы начать генерировать инструкции с несколькими вставками, т. Е. Если первым параметром insert
метода является массив объектов, вы получите свой многопозиционный запрос.
И если вы хотите получить только определенные свойства из запроса, лучший способ - указать их отдельно, как ColumnSet вне запросов (для повторного использования, для лучшей производительности):
app.get('/get', (req, res)=> {
var insert = pgp.helpers.insert(req.body, cs) + 'RETURNING id';
db.map(insert, [], a=>a.id)
.then(ids=> {
// ids = array of id-s
})
.catch(error=> {
// error
});
});
Пример возврата массива новых идентификаторов
без преобразования
var data = {
name: req.body.name,
email: req.body.email,
website: req.body.website,
...
...
}
с конверсией
pg