Уважаемые,
Мне просто интересно, возможно ли создать одну функцию, которая принимает SQL запрос в качестве аргумента и продолжит выполнение запроса. Учитывая две функции:
async addExpense(req, res){
const addExpense ='INSERT INTO budget.expenses_category_assigned_to_user VALUES(DEFAULT, $1, $2)'
if(!req.body.name){
return res.status(400).send({message: 'Expense cannot be added. Name is missing'})
}
const queryValues = [
req.user.id,
req.body.name
]
try{
await db.query(addExpense, queryValues)
return res.status(200).json({message: 'Expense has been successfully added'})
}catch(err){
return res.status(400).send({message: err})
}
}
async addPaymentMethod(req, res){
const addQuery = 'INSERT INTO budget.payment_methods_assigned_to_user VALUES (DEFAULT, $1, $2)'
if(!req.body.name){
return res.status(400).send({message: 'Payment method has not been added'})
}
try{
const queryParams = [
req.user.id,
req.body.name
]
await db.query(addQuery, queryParams)
return res.status(200).send({message: `${req.body.name} has been added`})
}catch(err){
return res.status(400).send({message: err})
}
}
Несмотря на некоторые различия, их можно легко стандартизировать, и единственным параметром, который может быть изменен, являются query и queryValues.
Не могли бы вы сообщить, возможно ли это в Node и postgres для создания такой функции:
foo(query, queryParams){
action
}
, которая будет обрабатывать запрос и может быть повторно использована для нескольких конечных точек?
Идея состоит в том, чтобы избежать избыточности и сохранить функциональные возможности API REST