настроил.
Надоело вбивать ручками запрос, хочу просто из объекта собирать строку запроса и отдавать ее, вот мой пример:
const nameTable = 'test';
const addTask = async (data) => {
const keysString = Object.keys(data).join(', ');
cosnt valuesString = Objet.keys(data).join(', ');
const query = `INSERT INTO ${nameTable} ( ${keys} ) VALUES ( ${valuesString} )`;
await db.query(query);
}
Постоянно падает ошибка синтаксиса
(node:14173) UnhandledPromiseRejectionWarning: error: syntax error at or near ":"
Реально ли такое реализовать? Или все-таки из-за типа данных зависит то, как его нужно записывать?
Если кому-то надо рабочее решение: export const addTask = async (data) => { const params = []; const keys = Object.keys(data); const values = Object.values(data); for (let i = 1; i <= values.length; i++) { params.push('$' + i); } const query = `INSERT INTO ${nameTable} (${keys.join(',')}) VALUES(${params.join(',')})`; await db.query(query, values); }
Обсуждают сегодня