Я пишу некоторый помощник не веб-приложения и столкнулся с необходимостью синхронного вызова запроса.
По сути, в цикле мне нужно проверить базу данных, чтобы увидеть, существует ли значение. Если это не так, введите значение. В настоящее время с помощью node-mysql я могу заставить его работать только с обратным вызовом. Из-за этого, node.js обрабатывает вызов как асинхронный и продолжает обрабатывать мой запрос до его завершения. Это большая проблема, потому что в конце она может вставлять дубликаты, потому что они были в очереди.
Идеальное решение - не работает. Результаты на самом деле являются объектом клиента, и я не могу найти фактические результаты внутри. Однако это делает его синхронным.
results = client.query('SELECT COUNT(md5) as md5Count FROM table WHERE md5 = "' + md5 + '"')
Следующее не работает. Node.js обрабатывает его как асинхронный, а externalResult по-прежнему является объектом клиента.
outerResult = client.query('SELECT COUNT(md5) as md5Count FROM board WHERE md5 = "' + md5 + '"', function selectCb(err, results, fields) {console.log(results);});
Любая помощь приветствуется.