then
и что-то не додумался до такого метода, да и примеров не видел подобных selectElement2.addEventListener('change', () => {
const selectedPrinterId = parseInt(selectElement2.value);
console.log('selectedPrinterId:', selectedPrinterId); // Добавленный вывод в консоль
console.log('Тип selectedPrinterId:', typeof selectedPrinterId);
fetch('http://:3000/printer_material?printer_id=${selectedPrinterId}')
.then(response => {
if (!response.ok) {
throw new Error('Ошибка отправки запроса');
}
// Обработать успешный ответ, если необходимо
})
.catch(error => {
console.error(error);
// Обработать ошибку, если необходимо
});
});
Но не до конца доделал этот вариант, почему-то я получаю ошибкуневерный синтаксис для типа integer_NaN_
const getPrinter_material = (printer_id, response) => {
pool.connect((error, client, release) => {
if (error) {
throw error;
}
const query = {
text: 'SELECT pr.printer_id, m.material FROM printer_material pm JOIN printer pr ON pm.printer_id = pr.printer_id JOIN material m ON pm.material_id = m.material_id WHERE pr.printer_id = $1;',
values: [printer_id],
}
client.query(query, (error, results) => {
release();
if (error) {
throw error;
}
// Добавленный код
response.status(200).json({result: 'ok'});
});
});
};
Страница не найдена
и в консоле тоже самое TypeError: Converting circular structure to JSON
--> starting at object with constructor 'Socket'
| property 'parser' -> object with constructor 'HTTPParser'
--- property 'socket' closes the circle
console.log(results);
на есть ли результат в принципе, console.log(JSON.stringify(results));
на можно ли представить результат в виде JSON.Result {
command: 'SELECT',
rowCount: 4,
oid: null,
rows: [
{ printer_id: 3, material: '610*175m' },
{ printer_id: 3, material: '610*50m' },
{ printer_id: 3, material: 'A3' },
{ printer_id: 3, material: 'A4' }
],
fields: [
Field {
name: 'printer_id',
tableID: 23183,
columnID: 1,
dataTypeID: 23,
dataTypeSize: 4,
dataTypeModifier: -1,
format: 'text'
},
Field {
name: 'material',
tableID: 23197,
columnID: 2,
dataTypeID: 1043,
dataTypeSize: -1,
dataTypeModifier: 54,
format: 'text'
}
],
_parsers: [ [Function: parseInteger], [Function: noParse] ],
_types: TypeOverrides {
_types: {
getTypeParser: [Function: getTypeParser],
setTypeParser: [Function: setTypeParser],
arrayParser: [Object],
builtins: [Object]
},
text: {},
binary: {}
},
RowCtor: null,
rowAsArray: false,
_prebuiltEmptyResultObject: { printer_id: null, material: null }
}
{"command":"SELECT","rowCount":4,"oid":null,"rows":[{"printer_id":3,"material":"610*175m"},{"printer_id":3,"material":"610*50m"},{"printer_id":3,"material":"A3"},{"printer_id":3,"material":"A4"}],"fields":[{"name":"printer_id","tableID":23183,"columnID":1,"dataTypeID":23,"dataTypeSize":4,"dataTypeModifier":-1,"format":"text"},{"name":"material","tableID":23197,"columnID":2,"dataTypeID":1043,"dataTypeSize":-1,"dataTypeModifier":54,"format":"text"}],"_parsers":[null,null],"_types":{"_types":{"arrayParser":{},"builtins":{"BOOL":16,"BYTEA":17,"CHAR":18,"INT8":20,"INT2":21,"INT4":23,"REGPROC":24,"TEXT":25,"OID":26,"TID":27,"XID":28,"CID":29,"JSON":114,"XML":142,"PG_NODE_TREE":194,"SMGR":210,"PATH":602,"POLYGON":604,"CIDR":650,"FLOAT4":700,"FLOAT8":701,"ABSTIME":702,"RELTIME":703,"TINTERVAL":704,"CIRCLE":718,"MACADDR8":774,"MONEY":790,"MACADDR":829,"INET":869,"ACLITEM":1033,"BPCHAR":1042,"VARCHAR":1043,"DATE":1082,"TIME":1083,"TIMESTAMP":1114,"TIMESTAMPTZ":1184,"INTERVAL":1186,"TIMETZ":1266,"BIT":1560,"VARBIT":1562,"NUMERIC":1700,"REFCURSOR":1790,"REGPROCEDURE":2202,"REGOPER":2203,"REGOPERATOR":2204,"REGCLASS":2205,"REGTYPE":2206,"UUID":2950,"TXID_SNAPSHOT":2970,"PG_LSN":3220,"PG_NDISTINCT":3361,"PG_DEPENDENCIES":3402,"TSVECTOR":3614,"TSQUERY":3615,"GTSVECTOR":3642,"REGCONFIG":3734,"REGDICTIONARY":3769,"JSONB":3802,"REGNAMESPACE":4089,"REGROLE":4096}},"text":{},"binary":{}},"RowCtor":null,"rowAsArray":false,"_prebuiltEmptyResultObject":{"printer_id":null,"material":null}}
TypeError: Converting circular structure to JSON
--> starting at object with constructor 'Socket'
| property 'parser' -> object with constructor 'HTTPParser'
--- property 'socket' closes the circle
const getPrinter_material = (printer_id, response) => {
const query = {
text: 'SELECT pr.printer_id, m.material FROM printer_material pm JOIN printer pr ON pm.printer_id = pr.printer_id JOIN material m ON pm.material_id = m.material_id WHERE pr.printer_id = $1;',
values: [printer_id],
}
pool.query(query, (error, results) => {
if (error) {
throw error;
}
response.status(200).json([...results.rows]);
});
};
throw new Error('Release called on client which has already been released to the pool.')
const getPrinter_material = (printer_id, response) => {
const query = {
text: 'SELECT pr.printer_id, m.material FROM printer_material pm JOIN printer pr ON pm.printer_id = pr.printer_id JOIN material m ON pm.material_id = m.material_id WHERE pr.printer_id = $1;',
values: [printer_id],
}
pool.query(query, (error, results) => {
if (error) {
throw error;
}
response.status(200).json(results.rows);
});
};
TypeError: Converting circular structure to JSON
--> starting at object with constructor 'Socket'
| property 'parser' -> object with constructor 'HTTPParser'
--- property 'socket' closes the circl
и это сдец const query = {
text: 'INSERT INTO users(name, email) VALUES($1, $2)',
values: ['brianc', 'brian.m.carlson@gmail.com'],
}
const res = await client.query(query)
console.log(res.rows[0])
"number"
. Но может да и ты прав хз. const query = {
`text: SELECT pr.printer_id, m.material
FROM printer_material pm
JOIN printer pr ON pm.printer_id = pr.printer_id
JOIN material m ON pm.material_id = m.material_id
WHERE pr.printer_id = $1,
values: [printer_id],`
};
error: ошибка синтаксиса (примерное положение: "[")
at Parser.parseErrorMessage (/var/www/html/test_aria/api/node_modules/pg-protocol/dist/parser.js:287:98)
at Parser.handlePacket (/var/www/html/test_aria/api/node_modules/pg-protocol/dist/parser.js:126:29)
at Parser.parse (/var/www/html/test_aria/api/node_modules/pg-protocol/dist/parser.js:39:38)
at Socket.<anonymous> (/var/www/html/test_aria/api/node_modules/pg-protocol/dist/index.js:11:42)
at Socket.emit (node:events:513:28)
at addChunk (node:internal/streams/readable:324:12)
at readableAddChunk (node:internal/streams/readable:297:9)
at Readable.push (node:internal/streams/readable:234:10)
at TCP.onStreamRead (node:internal/stream_base_commons:190:23) {
length: 149,
severity: 'ОШИБКА',
code: '42601',
detail: undefined,
hint: undefined,
position: '188',
internalPosition: undefined,
internalQuery: undefined,
where: undefined,
schema: undefined,
table: undefined,
column: undefined,
dataType: undefined,
constraint: undefined,
file: 'scan.l',
line: '1188',
routine: 'scanner_yyerror'
}
ну это делается хотя бы для того чтобы убедиться, что файл который вы хотите найти действительно там. я по этому и сделал проверку
ну и опять таки смотря для чего, опишите задачу подробнее, или чем конкретно не нравиться мой метод.
ну это не много не вяжется с первоначальным "вопросом"
если вы хотите сканировать допустим (беру за основу ваш пример) только файлы
file1.ex
file4.ex
file5.ex
то конечно алгоритм будет другой, но подход плюс-минус такой же, так что можете и додумать.