Интересно, почему другой ответ был удален его автором - похоже, даже СУХОЙ !!
Не совсем то, что вы хотите, но это СУХОЙ
Создайте функцию
const mydeletefn = table => (req, res, next) => {
pool.connect((err, client, done) => {
if (err) {
console.log("Cannot connect to the DB" + err);
}
client.query(`DELETE FROM ${table} WHERE ${table}.id=${req.params.id}`, (err, result) => {
done();
if (err) {
console.log(err);
res.status(400).send(err);
}
client.query(`SELECT * FROM ${table}`, (err, result) => {
done();
res.status(200).send(result.rows)
});
})
})
};
, теперь используйте ее как
app.delete('/tourists/:id', mydeletefn('tourists'));
app.delete('/flights/:id', mydeletefn('flights'));
Еще один, возможно, более полезный параметр:
const mydeletefn = (table, col='id') => (req, res, next) => {
pool.connect((err, client, done) => {
if (err) {
console.log("Cannot connect to the DB" + err);
}
client.query(`DELETE FROM ${table} WHERE ${table}.${col}=${req.params[col]}`, (err, result) => {
done();
if (err) {
console.log(err);
res.status(400).send(err);
}
client.query(`SELECT * FROM ${table}`, (err, result) => {
done();
res.status(200).send(result.rows)
});
})
})
};
Разница в том, что вы можете указать, какой параметр/ column для использования в качестве индекса - это ... (по умолчанию это id)
например, если у вас есть таблица и вы хотите удалить ее по имени столбца 'userid' вместо 'id'
app.delete('/users/:userid', mydeletefn('users', 'userid'));
и наконец - я не знаю, почему @SimpleJ удалил свой ответ.комбинируя приведенный выше код с его
const deleteEndpoint = (table, col='id') =>
app.delete(`/${table}/:${col}`, (req, res, next) => {
pool.connect(function (err, client, done) {
if (err) {
console.log("Cannot connect to the DB" + err);
}
client.query(`DELETE FROM ${table} WHERE ${table}.${col}=${req.params[col]}`, (err, result) => {
done();
if (err) {
console.log(err);
res.status(400).send(err);
}
client.query(`SELECT * FROM ${table}`, (err, result) => {
done();
res.status(200).send(result.rows);
});
})
})
};
, тогда это простой случай
deleteEndpoint('tourists'); // col defaults to `id`
deleteEndpoint('flights'); // col defaults to `id`
deleteEndpoint('users', 'userid');