@nodejs_ru

Страница 412 из 2748
Petr
09.12.2016
07:53:06
Пишу на es6

Пытался с промисами но че то не выходит

Vladimir
09.12.2016
07:53:40
vitaliy
09.12.2016
07:53:43
Ты его отправил и уже не отменишь
Если например у пользователя нет прав на запись, как быть, просто прочитать все данне а после ошибку вернуть?

Google
Da
09.12.2016
07:53:53
Всем привет! ▫️Какой у вас проект или где работаете? Пока нигде. Изучаю веб-технологии ▫️В чём вы специалист? Сисадмин-эникейщик ▫️Чем можете быть интересны или полезны сообществу? Пока ничем. Сорян :) ▫️Чем интересно сообщество вам? Буду смотреть и слушать умных людей ▫️Откуда вы? РФ ▫️Как узнали про группу? Где-то увидел линк из другой группы #whois

vitaliy
09.12.2016
07:56:00
403 в статусе ответа возращается но тело ответа нет.

если зарегистрирую callback на чтение чанков то тело будет

wumin
09.12.2016
07:59:20
vitaliy
09.12.2016
08:01:48
Посмотрел про superagent, это чуть не то. post запрос мне присылают. В любом случае, если я делаю this.req.abort(); то будет 500 а это некорректный ответ

wumin
09.12.2016
08:02:35
а, я тебя не так понял. superagent это клиентская библиотека

тоогда я не понимаю в чем проблема. return res.status(нужный статус).end() в месте где нужно прервать запрос

vitaliy
09.12.2016
08:04:45
проблема в том, что если мне отправляют файл в 100мб, пока я их не прочитаю, я не смогу вернуть тело ошибки о том, что 401

ошибся, 401 а не 403)

то есть у пользователя вообще нет прав что-то присылать мне)

wumin
09.12.2016
08:06:22
stream не спасет отца русской демократии?

vitaliy
09.12.2016
08:07:04
как он должен спасать?

Google
wumin
09.12.2016
08:07:10
я еще больше ничего не понимаю

если у него нет прав присылать тебе что-то то как он может это делать

?

vitaliy
09.12.2016
08:08:02
Чтобы проверить права пользователя, я должен получить запрос, проверить его куки

wumin
09.12.2016
08:08:17
ну stream чанками получает информацию

vitaliy
09.12.2016
08:08:21
Если там false я выбрасываю ошибку

то есть ответат со статусом 401 и тело ошибки в json

проблема в том

что приходит ответа со статусом 401 но тела ошибки нет

хотя перед самым req.end('blabla') тело есть

и тут такая штука, что если я в любом случае вешаю обработчик на чтение чанков this.req.on('data', callback)

то тело ошибки доходит корректно

возможно это что-то из стандарта http

что я не очень знаю

но хз

wumin
09.12.2016
08:10:56
незнаю чем тебе помочь

vitaliy
09.12.2016
08:11:23
и на том спасибо, буду копать)

Sergey
09.12.2016
08:15:02
Дарт будет жить?

Pavel
09.12.2016
08:15:41
пользовался ли кто momentjs? как складывать время?

к примеру 1:25 + 1.50 = 3:15

Google
Pavel
09.12.2016
08:18:58
хотя вопрос решен

Vladimir
09.12.2016
08:37:50
Pavel
09.12.2016
08:40:42
все пользовались
Но никто не ответил ?

Alex
09.12.2016
08:41:05
там есть встроенные функции. вычитание называется subtract, сложение не помню, предположу, что add

Vladimir
09.12.2016
08:41:14
Но никто не ответил ?
за три минуты-то? конечно

vitaliy
09.12.2016
08:44:38
Как вы заворачиваете запрос, если файл очень большой, например? можно конечно на уровне nginx но в ноде?

KlonD90
09.12.2016
08:46:54
Заголовок

Vint
09.12.2016
08:48:20
Как вы заворачиваете запрос, если файл очень большой, например? можно конечно на уровне nginx но в ноде?
Не можно, а нужно. Нечего насиловать application ненужными данными, пусть nginx отсеивает по заголовку.

vitaliy
09.12.2016
08:48:42
Если в ответе тело нужно

Vitaliy
09.12.2016
08:48:58
content-length или типа того? не помню, что там клиент отсылать должен

Vint
09.12.2016
08:49:06
Если в ответе тело нужно
Уникальное или единое для всех?

vitaliy
09.12.2016
08:49:27
Уникальное или единое для всех?
Допустим уникальное для каждого пользователя

Vint
09.12.2016
08:51:06
Допустим уникальное для каждого пользователя
Тогда таки проксировать в app. Или на lua в nginx писать)

Vitaliy
09.12.2016
08:52:29
@geekiams вот еще про разбор: https://docs.api.ai/docs/languages

Вау, вот это темпы! Меньше пары месяцев прошло с момента, как гугл купил api.ai, и вот запускается уже специальный раздел, позволяющий использовать этот фреймворк для улучшения google assistant. Ничего особенно нового тут нет, это просто интеграция уже известного нам api.ai и других инструментов для написания "скиллов" гугласистента. Но скорость для корпорации просто невероятная - значит они чувствуют конкуренцию и спешат не просто так. Активная конкуренция в поле "неестественного интеллекта", она буквально на всех фронтах - в ассистентах, в сервисах и опенсорс-библиотеках, в пиаре, во всем. Причем игроков на поле боя много, это не только классическая тройка гугл-эппл-майкрософт, но и новички в этой игре, вроде Амазона, который внезапно выбивается в лидеры. Страшно интересно за всем этим наблюдать. И, пожалуй, хорошо что мне не приходится в этой игре учавствовать, масштаб не мой конечно https://developers.googleblog.com/2016/12/start-building-actions-on-google.html

vitaliy
09.12.2016
09:04:58
Видимо для ноды надо в любоем случае считать первый чанк, потом удалить обработчик и вернуть тело ответа, тогда ответ будет корректный

Pavel
09.12.2016
09:26:16
пользовался ли кто momentjs? как складывать время?
Чем плохо перевести в миллисекунды и сложить?

Evgeny
09.12.2016
09:29:06
хочу в backend
Зачем, Там плохо - денег нет, работы нет, голодаем

I
09.12.2016
09:29:56
Google
Vladimir
09.12.2016
09:30:03
vitaliy
09.12.2016
09:35:12
Посмотри как это сделано в любом популярном middleware для express, multiparty, например.
да также и сделано, тупо читает все чанки и складывает, если размер превысил допустимый то снимает обработчики и выкидывает ошибку

Vint
09.12.2016
09:36:35
да также и сделано, тупо читает все чанки и складывает, если размер превысил допустимый то снимает обработчики и выкидывает ошибку
Ну, значит так и надо) И на каждой итерации проверять общий размер - если превышено, то ошибка. Потому что http-заголовок не панацея, его можно обмануть.

vitaliy
09.12.2016
09:37:58
Ну, значит так и надо) И на каждой итерации проверять общий размер - если превышено, то ошибка. Потому что http-заголовок не панацея, его можно обмануть.
Просто выходит, если у пользователя нет доступа на запись файлов, то в любом случае надо прочитать первый чанк, потом снять обработчик и бросить ошибку со статусом 401

Vitaliy
09.12.2016
09:56:25
Кажется, эта задача уже не раз решалась, и наверняка есть модули для этого ;)

Vladimir
09.12.2016
09:59:48
Нужно либо читать весь файл либо закрывать соединение

Admin
ERROR: S client not available

LEO
09.12.2016
10:45:02
Всем доброго времени суток!

пытаюсь научить бота делать список, т.е. я ему отправляю !Петров он видя этот знак "!" сажает имя "Петров" в таблицу

function insertname(name) { var query = connection.query('INSERT INTO Spisok (name) VALUES ('+name+')', function(err, result) { console.log(err); console.log(result); });

function insertname(name) { var query = connection.query('INSERT INTO Spisok (name) VALUES ('+name+')', function(err, result) { console.log(err); console.log(result); }); } bot.insertname('message', function(msg) { var name = msg.text;}

Славик
09.12.2016
10:50:30
вангую траблу с экранированием

LEO
09.12.2016
10:53:27
function insertname(name) { var query = connection.query('INSERT INTO Spisok (name) VALUES ('+name+')', ); } bot.insertname('message', function(msg) { var name = msg.text;}

а если без экранирования?

Vitaliy
09.12.2016
11:09:41
function insertname(name) { var query = connection.query('INSERT INTO Spisok (name) VALUES ('+name+')', ); } bot.insertname('message', function(msg) { var name = msg.text;}
а если без экранирования — это стрелять себе в ногу пожалуйста, не делайте себе и вашим пользователям плохо, позаботьтесь о данных, всегда проверяйте что приходит вам от пользователя и экранизируйте перед записью в БД какая у вас БД, postgre? каким модулем для работы с ней вы пользуетесь, pg? тогда посмотрите вот на эту технику, это просто и безопасно: https://github.com/brianc/node-postgres/wiki/Parameterized-queries-and-Prepared-Statements query( "select name from emp where emp_id=$1", [123] )

LEO
09.12.2016
11:19:52
У меня самый примитивный вариант, mssql

на PHPmyAdmin

.

Сюда пытаюсь засунуть данные

Google
Anton
09.12.2016
11:22:44
но есть подозрение, что это лучше не на ноде делать
я для твитов хочу заюзать и хочу риалтайм (скорее всего ws), поэтому нода в стэке точно будет. sentiment анализ может и не на ноде нужно делать, но в любом случае пофиг на чем прототипировать

Славик
09.12.2016
11:24:51
Vitaliy
09.12.2016
11:26:22
У меня самый примитивный вариант, mssql
Отлично! У драйверов для вашей БД тоже есть способ передачи параметров вторым аргументом. Драйвер сам возьмёт их и заэкранирует, просто посмотрите документацию. Это важно

Юрий
09.12.2016
11:29:00
Всем привет .как оптимальней написать для компилятора ?нужно разбить строку и при этом учитывать пробелы табы и переносы строк,то есть в дереве храниться все

LEO
09.12.2016
11:49:31
Славик
09.12.2016
12:05:54
0_о

как бы я спросил, как разбить строку нужно

получить только слова?

или получить только массив строк, разделенных переносом?

Pavel
09.12.2016
12:07:41
Господа, у меня API генерит XLSX-файлы Из-за расчудесного Safari (который не умеет на клиенте создавать файлы с заданным именем) я вынужден делать это на сервере. API называется, допустим table Алгоритм примерно такой 1. Пользователь кликает на ссылку, в которой уже прописаны GET-параметры для генерации и стоит target="blank". Ссылка выглядит, допустим, так: example.com/api/table?param1=42. 2. API принимает GET-запрос, генерит файл и отправляет в ответ на запрос, так что для пользователя всё выглядит, будто это просто ссылка на файл. Параметры ответа примерно такие http://puu.sh/sJu6n/b5b5e17133.png 3. пользователь получает запрос на сохранение файла браузером, но он почему-то называется не VASYA.xlsx, как я указал в attachmentfilename, а table — по названию API. Почему так?

Юрий
09.12.2016
12:07:53
как бы я спросил, как разбить строку нужно
? я думал ты вопрос переформулировал )

Славик
09.12.2016
12:08:12
короче, ответ: регулярные выражения

гугл в помощь

Господа, у меня API генерит XLSX-файлы Из-за расчудесного Safari (который не умеет на клиенте создавать файлы с заданным именем) я вынужден делать это на сервере. API называется, допустим table Алгоритм примерно такой 1. Пользователь кликает на ссылку, в которой уже прописаны GET-параметры для генерации и стоит target="blank". Ссылка выглядит, допустим, так: example.com/api/table?param1=42. 2. API принимает GET-запрос, генерит файл и отправляет в ответ на запрос, так что для пользователя всё выглядит, будто это просто ссылка на файл. Параметры ответа примерно такие http://puu.sh/sJu6n/b5b5e17133.png 3. пользователь получает запрос на сохранение файла браузером, но он почему-то называется не VASYA.xlsx, как я указал в attachmentfilename, а table — по названию API. Почему так?
https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Disposition я не вижу в примерах нигде "attachmentfilename", только вот: Content-Disposition: attachment; filename="filename.jpg"

Юрий
09.12.2016
12:20:32
короче, ответ: регулярные выражения
Вот строка "это очередная строка =) " Вхождение1:"это", Вхождение2:"пробел", Вхождение3:"очередная", Вхождение4:"пробел", Вхождение5:"строка", Вхождение6:"пробел", Вхождение7:"пробел", Вхождение8:"пробел", Вхождение9:"=)", Вхождение10:"перенос строки". Меня интересует алгоритм разбора

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