2016-04-06 4 views
2

Мне нужно повторно запустить запрос node.js, чтобы получить последние записи. это то, что я пробовал до сих пор.Node.JS снова запускает запрос Node-Msql с отключенным сценарием node.js

setTimeout(function() { 

connection.query('SELECT * FROM News ORDER BY Content DESC LIMIT 1', function(err, rows, fields){ 
var News = rows[0].Content; 
}, 2000); 

я бы подумал, что это сработало бы, выполнив запрос еще раз, когда таймер достигает 0, я знаю 2 секунды, немного короче говоря, это было только для целей тестирования.

Вся его часть веб-сервера express.js, когда я перехожу к странице, не обновляет текст с помощью новейшей записи. Каков наилучший способ справиться с этим? Я должен перезапустить скрипт, чтобы получить последние записи, я хотел бы сделать это, не перезагружая скрипт.

+0

Вы можете предоставить еще несколько деталей? запрос выполняется async, поэтому вам нужно быть уверенным, что вы правильно обрабатываете это для вашего req/resp, а также для этого запроса. SetTimeout не будет препятствовать возврату ответа клиенту. – scottjustin5000

+0

Какие подробности? Мне просто нужно знать, как я могу повторно запустить mysql-запрос. – FlerrElectronics

+0

Вы выполняете тот же запрос дважды и используете setTimeout в попытке отсрочить второй запуск? – scottjustin5000

ответ

0

Я думаю, проблема в том, что вам нужно сделать новый запрос/ответ.

SetTimeout должен быть установлен в браузере не в node.js.

SO через n секунд вы хотите выполнить новый запрос/ответ, а затем выполнить новый запрос в Mysql DB.

Теперь, с другой стороны, возможно, у нас есть кешированный resulSet. Чтобы избежать кэширования, попробуйте изменить текст запроса. Например, напишите его в нижнем регистре

select * from news order by content desc limit 1 
+0

Я использую переменную News для отображения результата, ее обновляется один раз, когда запрашивается база данных, но я не могу сделать больше 1 запроса mysql в такой же код? – FlerrElectronics

+0

Я пытаюсь сказать, что ответ будет отправлен до того, как будет выполнен второй запрос ... так что ответ связан с первым вызовом не вторым ... SetTimeout не остановит следующие строки для запуска , –

+0

Я использую таймер так, что когда он закончится, он снова запустит запрос? Я в замешательстве, что вы говорите. – FlerrElectronics