Синхронные запросы баз данных с Node.js

Для начала скажу, что я зарабатываю через вот этого брокера, проверен он временем! А вот хороший пример заработка, человек зарабатывает через интернет МНОГО МНОГО МНОГО и показывает все на примерах, переходи и читай! Добавь страницу в закладки. А теперь читаете информацию ниже и пишите свой отзыв

У меня есть узел.с JS/Экспресс-приложение, которое запрашивает БД MySQL в маршруту и выводит результат пользователю.

Моя проблема в том, как я могу выполнять запросы и блокировать до тех пор, пока оба запроса выполняются перед перенаправлением пользователя на страницу, которую они просили?

В моем примере у меня есть 2 запросы, которые нужно закончить, прежде чем я отображения страницы.

Я могу вам запросы, чтобы работать синхронно, если я гнездо запросе 2 внутри ‘результат’ обратного вызова запроса 1. Однако это становится очень запутанным, когда количество запросов увеличится.

Как я могу идти о запуске нескольких (в данном случае 2) запросы к базе данных синхронно без вложения последующий запрос в предварительного запроса ‘результат’ обратного вызова?

Я посмотрел на ‘контроль расхода / асинхронные вкусности’ в узле модулей и попытался потока JS, но я не могу заставить его работать с асинхронными запросами.

Ниже приводятся 2 запросы, которые я пытаюсь выполнить с маршрута/на дому’. Специалисты узла объяснять “правильный” способ сделать это.

app.get('/home', function (req,res) {     var user_array = [];     var title_array = [];      // first query     var sql = 'select user_name from users';     db.execute(sql)         .addListener('row', function(r) {             user_array.push( { user_name: r.user_name } );         })         .addListener('result', function(r) {             req.session.user_array = user_array;         });      // second query     var sql = 'select title from code_samples';     db.execute(sql)         .addListener('row', function(r) {             title_array.push( { title: r.title } );         })         .addListener('result', function(r) {             req.session.title_array = title_array;         });          // because the queries are async no data is returned to the user         res.render('home.ejs', {layout: false, locals: { user_name: user_array, title: title_array }}); }); 

Можно использовать волокна, чтобы написать псевдо-синхронный код с Node.JS взгляните на эти тесты для БД https://github.com/alexeypetrushin/mongo-lite/blob/master/test/collection.coffee они являются асинхронными, но, похоже, синхронно, подробнее http://alexeypetrushin.github.com/synchronize

1 Звезда2 Звезды3 Звезды4 Звезды5 Звезд (Пока оценок нет)
Загрузка...

Оставить комментарий

Ваш email нигде не будет показанОбязательные для заполнения поля помечены *

*