@nodejs_ru

Страница 1482 из 2748
Vitaliy
12.01.2018
08:36:26
http://thecodebarbarian.com/using-async-await-with-mocha-express-and-mongoose

Алексей
12.01.2018
08:36:28
router.get('/', async function(req, res, next) { ... try{ var users = await User.find({}) } catch{}

Google
Dmitriy
12.01.2018
08:40:20
Просто совсем еще неразобрался с async/await

А решить проблему хотелось элегантно и красиво

router.get('/', async function(req, res, next) { mongoose.connect(url); var User = mongoose.model("User", userScheme); try{ var users = await User.find({}) .then(data => data) .catch(err => err); } catch(err){} res.render('user/index', {title: "Users", users: users}); });

Vitaliy
12.01.2018
08:42:29
catch(err){} так лучше не оставлять

Dmitriy
12.01.2018
08:42:32
Без try/catch не получится данные получить?

Алексей
12.01.2018
08:43:32
Просто у тебя будет ошибка не перехваченная

router.get('/', async function(req, res, next) { mongoose.connect(url); var User = mongoose.model("User", userScheme); try{ var users = await User.find({}) .then(data => data) .catch(err => err); } catch(err){} res.render('user/index', {title: "Users", users: users}); });
.then(data => data) .catch(err => err); лишнее async/await для того что-бы код выглядел синхронно, попробуйте сначала на простых промисах, т.к. под капотом у async/await промисы и важно понимать как они работают

Google
Dmitriy
12.01.2018
08:53:23
Вуаля

Алексей
12.01.2018
08:53:24
а разве под капотом не функции-генераторы?
я немного не то имел ввиду Цель функций async/await упросить использование promises синхронно и воспроизвести некоторое действие над группой Promises. Точно так же как Promises подобны структурированным callback-ам, async/await подобна комбинации генераторов и promises. https://developer.mozilla.org/ru/docs/Web/JavaScript/Reference/Statements/async_function

Dmitriy
12.01.2018
08:53:26
в 3 строки )

router.get('/', async (req, res, next) => { mongoose.connect(url); var users = await mongoose.model("User", userScheme).find({}).then(data => data); res.render('user/index', {title: "Users", users: users}); });

эээ, но в редакторе 3 )

Алексей
12.01.2018
08:54:17
.then(data => data) бесполезная строчка. Вы берёте результат await mongoose.model("User", userScheme).find({}) и ничего с ним не делая возвращаете его же

Dmitriy
12.01.2018
08:54:24
Спасибо всем, рад очень ) Но буду восполнять пробелы в async/await

Vitaliy
12.01.2018
08:54:29
.then(data => data) убери

Артём
12.01.2018
08:55:15
Есть тут те, кто работал с https://github.com/zerobias/telegram-mtproto ??

Dmitriy
12.01.2018
08:55:30
router.get('/', async (req, res, next) => { mongoose.connect(url); var users = await mongoose.model("User", userScheme).find({}); res.render('user/index', {title: "Users", users: users}); }); Совсем не плохо теперь

Vitaliy
12.01.2018
08:55:53
ну без try catch не оч правильно

Vitaliy
12.01.2018
08:57:11
так как к фишкам async/await относится и использование стандартных try/catch/ finally

Dmitriy
12.01.2018
08:57:11
ну без try catch не оч правильно
т.е. если потенциально данный не будет, то будет ошибка?

Vitaliy
12.01.2018
08:57:35
да будет сров ошибки которую ты не обработаеш

Dmitriy
12.01.2018
08:57:42
так как к фишкам async/await относится и использование стандартных try/catch/ finally
про finally вообще не читал, добавлю себе в список для чтния

Google
Vitaliy
12.01.2018
08:58:52
но наверное не при отсутсвии даных, а при действительно ошибке самой бд

а не обработаная ошибка крашит прогу

Alexey
12.01.2018
09:01:57
а не обработаная ошибка крашит прогу
// Connecting there... const User = mongoose.model("User", userScheme); router.get('/', function(req, res) { User.find({}) .then(users => users) .catch(error => []); .then(users => res.render('user/index', {title: "Users", users: users})); });

Что-то вроде этого

Roman
12.01.2018
09:02:17
https://hackernoon.com/im-harvesting-credit-card-numbers-and-passwords-from-your-site-here-s-how-9a8cb347c5b5

Alexey
12.01.2018
09:04:54
а не обработаная ошибка крашит прогу
// Connecting there... const User = mongoose.model("User", userScheme); router.get('/', async function(req, res) { let users; try { users = await User.find({}); } catch (error) { users = []; } if (users && users.length) { res.render('user/index', { title: "Users", users: users }); } else { res.render('user/index', { title: "Users", errors: [] }); } });

Или так, например

next аргумент, смотря на этот конкретный случай, не нужен

Vitaliy
12.01.2018
09:06:57
да ну все же было бы хорошо может

} catch (error) { users = []; console.warn(error); } типо такого

понять в чем ошибка и всякое такое

Alexey
12.01.2018
09:08:13
Ага, там на усмотрение разработчика, как лучше обрабатывать эту ошибку

Vitaliy
12.01.2018
09:08:45
ну да, я про то что ее нужно как-то обработать сам error

Alexey
12.01.2018
09:10:34
ну да, я про то что ее нужно как-то обработать сам error
User.find({}) .then(users => users) // Тут справедливо заметили, что это можно опустить, если нет какой-либо дополнительной обработки .catch(error => []); .then(users => res.render('user/index', {title: "Users", users: users}));

Vitaliy
12.01.2018
09:11:10
только хотел сказать ;))

Alexey
12.01.2018
09:13:03
только хотел сказать ;))
// Connecting there... const User = mongoose.model("User", userScheme); router.get('/', async (req, res, next) => { let users; try { users = await User.find({}); } catch (error) { users = []; } res.locals.users = users; next(); }, (req, res) => { const { users } = res.locals; if (users && users.length) { res.render('user/index', { title: "Users", users: users }); } else { res.render('user/index', { title: "Users", errors: [] }); } });

Пример с использованием middleware`а

Vitaliy
12.01.2018
09:16:30
а async??

Google
Alexey
12.01.2018
09:16:47
Admin
ERROR: S client not available

Alexey
12.01.2018
09:17:07
Поправил

Vitaliy
12.01.2018
09:17:36
n1

Alexey
12.01.2018
09:18:00
Пользователи обычно во многих местах необходимы, можно вынести это в отедельную логику, не зависимо от этого роута

Вариант масса, в общем

Плюс, http://expressjs.com/en/guide/error-handling.html

Gleb
12.01.2018
10:03:04


Александр
12.01.2018
10:04:53
ребят я не спец, но какие нюансы, и какие bestPractices для опираций с числами? я тут нашел у себя багу: node > 18 * 1.9 34.199999999999996 > 18 * 19 / 10 34.2 В других языках (dart, python, swift) идет умножение на 1.9 верно

Dima
12.01.2018
10:06:43
Да! Плюсую. Интересная тема.

Gleb
12.01.2018
10:08:24
db.models.find({}, { comments: 1 }).pretty()
Пробовал, не то оно возвращает родительский документ с коментами, а хочется только отдельные обьекты из коментов выдернуть. Это вообще возможно?

Nikolay
12.01.2018
10:08:47
https://github.com/josdejong/mathjs не юзал либу но вроде об этом

DimenSi
12.01.2018
10:19:59
https://github.com/josdejong/mathjs не юзал либу но вроде об этом
Либа для сложных вычислений и человек не может победить стандарт по числам.

Nikolay
12.01.2018
10:20:50
Либа для сложных вычислений и человек не может победить стандарт по числам.
в песочнице на сайте какие-то вычисления округляет нормально. а так да. "Это не баг, а фича" ?

Igor
12.01.2018
10:50:02
только перестал ставить ; и набросили г на вентилятор

Конец спорам о том, нужно ли использовать точки с запятыми в JavaScript: TC39 рекомендует не полагаться на ASI (алгоритм автоматической расстановки точек с запятыми) и ставить ; всегда — https://github.com/tc39/ecma262/pull/1062

Dimanius851
12.01.2018
10:50:56


Valeriu
12.01.2018
11:29:08
Можно регистрировать пользователя в Telegram через API?

Google
Valeriu
12.01.2018
11:30:28
Спрашиваю потому что видел в WEB версий что пишет что регистрацию нужно пройти через приложение iOS или Android

Alexander
12.01.2018
11:35:02
Народ, не силён в регулярках. Вот это можно как-то оптимизировать? description = description .replace(/(<br\s*\/>)|(<\/p>\s*|\n*<p>)/gm, "\n") // Paragraph .replace(/<(?:.|\n)*?>/gm, "") .trim(); Что-то мне подсказывает, что это "дорого" работает.

Narek
12.01.2018
11:35:27
regex101.com

Rafael
12.01.2018
11:35:56
debuggex еще есть

Alexander
12.01.2018
11:36:00
regex101.com
я был там ))

Moe
12.01.2018
12:27:26
гайз, я тут пробую освоить`jwt` я скину серию скриншотиков







Andrey ?
12.01.2018
12:27:58
Сюда всмотрись

Страница 1482 из 2748