0 / 0 / 0
Регистрация: 24.10.2016
Сообщений: 31
|
||||||
1 | ||||||
CallBack функция работает не корректно15.01.2017, 23:18. Просмотров 499. Ответов 14
Метки нет Все метки)
(
Иными словами я не могу понять, почему при отсутствии данных в базе выполнение просто подвисает. Нет никаких ошибок, в консоле лог не прописывается, а страница подвисает, возвращая что-то вроде "нет доступа к странице" или "страница была не найдена"
Вот сама операция и её колбэк:
0
|
|
15.01.2017, 23:18 | |
Метод класса не работает как callback-функция
Не корректно работает функция Не корректно работает функция |
|
0 / 0 / 0
Регистрация: 24.10.2016
Сообщений: 31
|
|
15.01.2017, 23:46 [ТС] | 3 |
Я хочу сделать так. Если логина в базе нет, то тогда нужно добавить его в бд. Я это пытался сделать в колбэке, но из-за того, как вы сказали, что состояние становится подвисшим, это сделать не удаётся.
Я пытался отправить простое предложение (res.send ...), но из-за того, что совпадение в данных бд нет, он и этого не делает. Как мне поступить, чтобы обойти это дело?
0
|
Ренегат
![]() |
|||||||||||
16.01.2017, 00:20 | 4 | ||||||||||
Вообще-то колбек у вас относительно правильный. Только синтаксис используется обычно другой.
У меня вот уже давно всё на промисах построено. Но стандартный синтаксис колбеков таков:
0
|
0 / 0 / 0
Регистрация: 24.10.2016
Сообщений: 31
|
||||||
16.01.2017, 00:40 [ТС] | 5 | |||||
Сделал как вы сказали:
0
|
Ренегат
![]() |
|
16.01.2017, 00:45 | 6 |
Ага, если он не имеет ошибок выполнения запроса и если у него разные пароли приходят, тогда ему реально нечего делать. Пусть тогда ошибку выкидывает.
Вообще ещё подвисания могут быть из-за долгого конекта к бд. Добавлено через 2 минуты А ещё интересно получается, что у вас вставляется пользователь, а вы уже отдали страницу, что всё хорошо. А вдруг он не вставился? Такое может быть. Короче говоря, вы не до конца понимаете как работают колбеки вообще и не до конца понимаете их смысл. Я постараюсь найти в своих постах пример, вроде я его кому-то уже рассказывал. Если не найду, то на пальцах объясню.
0
|
0 / 0 / 0
Регистрация: 24.10.2016
Сообщений: 31
|
||||||
16.01.2017, 01:05 [ТС] | 7 | |||||
Мысль понял, сделал так:
Конектится с бд быстро
0
|
![]() 932 / 690 / 235
Регистрация: 01.02.2015
Сообщений: 1,848
|
|
16.01.2017, 01:17 | 8 |
не очень мне нравится db.each
х.з. как это работает я бы вам посоветовал не пилить свою авторизацию, а использовать Passport и не знаю с каким плагином вы работаете для связки с базой, но самое крутое решение было бы Sequelize
0
|
0 / 0 / 0
Регистрация: 24.10.2016
Сообщений: 31
|
|
16.01.2017, 01:19 [ТС] | 9 |
Я использую плагин sqlite3 для работы с базами SQLite.
В данный момент моя тестовая работа почти закончена, нет только регистрации и авторизации и для пользователей. Так что мне нужно узнать, как заставить работать это, чем переделывать проект под другой плагин.
0
|
0 / 0 / 0
Регистрация: 24.10.2016
Сообщений: 31
|
|
16.01.2017, 14:53 [ТС] | 11 |
Буду надеяться и ждать
0
|
Ренегат
![]() |
||||||
16.01.2017, 22:45 | 12 | |||||
Ладно. Начнём с понятия. Вот представьте себе, что у вас есть кофеварка. Вы взяли и прикрутили к кофеварке кнопку. Ради удобства, чтобы она сразу делала вам кофе, пока вы разуваетесь в коридоре. А теперь в этой же вселенной с кофеваркой мы пригласим домой друга. Но, скажем ему: "приезжай с чем-нибудь вкусненьким к чаю или кофе. Когда приедешь, там на стенке в коридоре кнопка - нажмёшь и тебе приготовиться кофе."
Когда вы приходите домой у вас на столе уже стоит какой-нибудь тортик, кружечка кофе, и друг. Теперь разберём по действиям. Когда вы позвонили другу и дали ему инструкции, вы объявили колбек. Когда друг приехал и нажал на кнопку в коридоре, он выполнил колбек. Если бы друг не приехал, то он бы не нажал. Вообще, думаю пример с кодовым замком в подъезде был бы проще, но суть та же. Когда что-то встречается на пути, или что-то происходит, то программа может действовать по заранее описанному алгоритму. Тк вот, у вас происходит 2 асинхронные операции. Выполняются они должны последовательно, а не параллельно. Соответственно должно быть 2 колбека. Будет выглядеть этот код примерно так:
0
|
0 / 0 / 0
Регистрация: 24.10.2016
Сообщений: 31
|
|
18.01.2017, 15:20 [ТС] | 13 |
Я это всё понимаю.
Просто реализовать не вышло. Однако ваше решение всё равно не работает. Подвисания продолжаются Добавлено через 40 минут И ваш код тоже немного не валидный Добавлено через 16 секунд И ваш код тоже немного не валидный
0
|
Ренегат
![]() |
||||||
18.01.2017, 20:12 | 14 | |||||
Да, скобочку забыл убрать...
0
|
0 / 0 / 0
Регистрация: 24.10.2016
Сообщений: 31
|
||||||
18.01.2017, 20:42 [ТС] | 15 | |||||
хехе, шутка удалась
Решил проблему. Дело было вовсе не в колбэках. Если так посмотреть, то твой последний и предпоследний вариант кода такой же, что и тот, который я скидывал до этого. А вот и само решение проблемы (приведу код на coffee, потому что он у меня на coffee):
0
|
18.01.2017, 20:42 | |
Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь или здесь. Не корректно работает функция ЕСЛИ не корректно работает функция .splice() функция удаления работает не корректно почему??? Поиск рабочей прокси(функция работает не корректно) Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |