Anonymous
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;}
Славик
вангую траблу с экранированием
Anonymous
function insertname(name) { var query = connection.query('INSERT INTO Spisok (name) VALUES ('+name+')', ); } bot.insertname('message', function(msg) { var name = msg.text;}
Anonymous
а если без экранирования?
Yuriy
Рекомендую глянуть google://SQL sanitizing, а то встреча с Little Bobby Tables неизбежна :)
Vitaliy
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] )
Anonymous
У меня самый примитивный вариант, mssql
Anonymous
на PHPmyAdmin
Anonymous
.
Anonymous
Anonymous
Сюда пытаюсь засунуть данные
Anton
но есть подозрение, что это лучше не на ноде делать
я для твитов хочу заюзать и хочу риалтайм (скорее всего ws), поэтому нода в стэке точно будет. sentiment анализ может и не на ноде нужно делать, но в любом случае пофиг на чем прототипировать
Vitaliy
У меня самый примитивный вариант, mssql
Отлично! У драйверов для вашей БД тоже есть способ передачи параметров вторым аргументом. Драйвер сам возьмёт их и заэкранирует, просто посмотрите документацию. Это важно
Anonymous
Всем привет .как оптимальней написать для компилятора ?нужно разбить строку и при этом учитывать пробелы табы и переносы строк,то есть в дереве храниться все
Славик
0_о
Славик
как бы я спросил, как разбить строку нужно
Славик
получить только слова?
Славик
или получить только массив строк, разделенных переносом?
Ohar
Господа, у меня 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. Почему так?
Anonymous
как бы я спросил, как разбить строку нужно
😄 я думал ты вопрос переформулировал )
Славик
короче, ответ: регулярные выражения
Славик
гугл в помощь
Славик
Господа, у меня 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"
Anonymous
короче, ответ: регулярные выражения
Вот строка "это очередная строка =) " Вхождение1:"это", Вхождение2:"пробел", Вхождение3:"очередная", Вхождение4:"пробел", Вхождение5:"строка", Вхождение6:"пробел", Вхождение7:"пробел", Вхождение8:"пробел", Вхождение9:"=)", Вхождение10:"перенос строки". Меня интересует алгоритм разбора
Vitaliy
string.split(' ');
Vitaliy
На выходе — массив слов. А пробелы — вычленены. В исходной строке пробелов столько, сколько элементов в массиве слов минус 1.
Vitaliy
Например, строка из 2 пробелов будет разбита на массив из 3 строк нулевой длины ' '.split(' ') // ['', '', '']
Yuriy
Либо регулярки, либо написать простейший конечный автомат.
Ohar
https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Disposition я не вижу в примерах нигде "attachmentfilename", только вот: Content-Disposition: attachment; filename="filename.jpg"
Ах ты ж чёрт, автозамена по проекту с удалением точек с запятой таки-не обошлась без последствий
Anonymous
^
Спасибо попробую.
Ohar
Спасибо
Anonymous
Либо регулярки, либо написать простейший конечный автомат.
Что ты имеешь в виду под простым конечным автоматом ?
Славик
Ах ты ж чёрт, автозамена по проекту с удалением точек с запятой таки-не обошлась без последствий
ы, я как-то в одном старом пхп проекте поставил опострофы в квадратных скобках, разработчик до меня еще походу на пхп 4 писал и не делал то, что необязательно
Славик
уже 2 месяца последствия разгребаю
Yuriy
Что ты имеешь в виду под простым конечным автоматом ?
https://en.wikipedia.org/wiki/Finite-state_machine вот это. Состояния «внутри слова», «вне слова» + заполнение выходного массива в зависимости от состояния.
Petr
Ребята можете привести следующию функцию в промисах, просто хочу посмотреть как правильно делать: router.post("/", (req, res)=>{ let email = req.body.email; mailer.request(email, "email.index.html", (err) => {if (err) res.sendStatus(400); let user = new User({email: email}); user.save((err)=> { if (err) console.error(err); console.log("success");}}})
Vlad
у тебя у кода инденты сломались
Petr
В том то и проблема можете в промисах переписать, буду благодарен👍
Vlad
у тебя каша а не код сейчас, прости
Vlad
если хочешь автоматическое решение
Vlad
посмотри на pify
Sergey
Sergey
по хорошему User#save тоже должен возвращать промис
Sergey
https://gist.github.com/LestaD/8e37acfd548995fbaa1d5a9f09edea86
Alex ZeroDub
как сейчас обстоят дела у ноды с postgresql ? нормально работает ?
А ВОТ ТЕПЕРЬ ПАБЛИК
@sovamist ты же вроде рубифан, подскажи в руби чате
Alex ZeroDub
ранее была статья где автор сравнивал монгу и постгре при работе с нодой. отозвался что постгре не подходит под нодовскую асинхронность
Vladimir
Ерунда скорей всего
Владимир
а что именно не подходит?
SK
Дай ссылку интересно посмотреть
Alex ZeroDub
надо найти
vitshev
согласен
Vladimir
Возможно имеется в виду что протокол синхронный и нужен пул соединений?
Alex ZeroDub
юзай posgresql под sequelize и норм
в проде используете ?
Anonymous
промисы там и все такое
Anonymous
не, в проде я на php пишу 🌚
Alex ZeroDub
статью чет не могу найти. видимо надо свой бенчмарк устроить.
Anonymous
кароче смотри от задачи
Anonymous
если тебе не нужны связанные таблицы, то монга, если нужны то скл
Anonymous
чето такое читал
Alex ZeroDub
это понятно. монга гарантирует целостность только в пределах одной коллекции
Alex ZeroDub
а по одной коллекции масшитабные срезы не построишь
Alex ZeroDub
поэтому монга и не нужна
А ВОТ ТЕПЕРЬ ПАБЛИК
А ВОТ ТЕПЕРЬ ПАБЛИК
молчат
Anonymous
я в начале с монги начинал, но скл базы чет больше понравились