Advertisement
Guest User

Untitled

a guest
Apr 17th, 2018
116
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 51.50 KB | None | 0 0
  1. const Koa = require('koa');
  2. var bodyParser = require('koa-bodyparser');
  3.  
  4.  
  5. const app = module.exports = new Koa();
  6.  
  7. var mysql = require('mysql');
  8.  
  9.  
  10. var g_Cache = { books : [] };
  11.  
  12. var mysqlSetttings = {
  13. host: "127.0.0.1",
  14. user: "root",
  15. password: "",
  16. database: "b00kz"
  17. };
  18.  
  19.  
  20.  
  21. function getRandomInt(min, max) {
  22. return Math.floor(Math.random() * (max - min)) + min;
  23. }
  24.  
  25. function fillBooks()
  26. {
  27. var lastNames = ['Абрамов' , 'Авдеев' , 'Агафонов' , 'Аксёнов' , 'Александров' , 'Алексеев' , 'Андреев' , 'Анисимов' , 'Антонов' , 'Артемьев' , 'Архипов' , 'Афанасьев' , 'Баранов' , 'Белов' , 'Белозёров' , 'Белоусов' , 'Беляев' , 'Беляков' , 'Беспалов' , 'Бирюков' , 'Блинов' , 'Блохин' , 'Бобров' , 'Бобылёв' , 'Богданов' , 'Большаков' , 'Борисов' , 'Брагин' , 'Буров', 'Быков' , 'Васильев' , 'Веселов' , 'Виноградов' , 'Вишняков' , 'Владимиров' , 'Власов' , 'Волков' , 'Воробьёв' , 'Воронов' , 'Воронцов' , 'Гаврилов' , 'Галкин' , 'Герасимов' , 'Голубев' , 'Горбачёв' , 'Горбунов' , 'Гордеев' , 'Горшков' , 'Григорьев' , 'Гришин' , 'Громов' , 'Гуляев' , 'Гурьев' , 'Гусев' , 'Гущин' , 'Давыдов' , 'Данилов' , 'Дементьев' , 'Денисов' , 'Дмитриев' , 'Доронин' , 'Дорофеев' , 'Дроздов' , 'Дьячков' , 'Евдокимов' , 'Евсеев' , 'Егоров' , 'Елисеев' , 'Емельянов' , 'Ермаков' , 'Ершов' , 'Ефимов' , 'Ефремов' , 'Жданов' , 'Жуков' , 'Журавлёв' , 'Зайцев' , 'Захаров' , 'Зимин' , 'Зиновьев' , 'Зуев' , 'Зыков' , 'Иванков' , 'Иванов' , 'Игнатов' , 'Игнатьев' , 'Ильин' , 'Исаев' , 'Исаков' , 'Кабанов' , 'Казаков' , 'Калашников' , 'Калинин' , 'Капустин' , 'Карпов' , 'Кириллов' , 'Киселёв' , 'Князев' , 'Ковалёв' , 'Козлов' , 'Колесников' , 'Колобов' , 'Комаров' , 'Комиссаров' , 'Кондратьев' , 'Коновалов' , 'Кононов' , 'Константинов' , 'Копылов' , 'Корнилов' , 'Королёв' , 'Костин' , 'Котов' , 'Кошелев' , 'Красильников' , 'Крылов' , 'Крюков' , 'Кудрявцев' , 'Кудряшов' , 'Кузнецов' , 'Кузьмин' , 'Кулагин' , 'Кулаков' , 'Куликов' , 'Лаврентьев' , 'Лазарев' , 'Лапин' , 'Ларионов' , 'Лебедев' , 'Лихачёв' , 'Лобанов' , 'Логинов' , 'Лукин' , 'Лыткин' , 'Макаров' , 'Максимов' , 'Мамонтов' , 'Марков' , 'Мартынов' , 'Маслов' , 'Матвеев' , 'Медведев' , 'Мельников' , 'Меркушев' , 'Миронов' , 'Михайлов' , 'Михеев' , 'Мишин' , 'Моисеев' , 'Молчанов' , 'Морозов' , 'Муравьёв' , 'Мухин' , 'Мышкин' , 'Мясников' , 'Назаров' , 'Наумов' , 'Некрасов' , 'Нестеров' , 'Никитин' , 'Никифоров' , 'Николаев' , 'Никонов' , 'Новиков' , 'Носков' , 'Носов' , 'Овчинников' , 'Одинцов' , 'Орехов' , 'Орлов' , 'Осипов' , 'Павлов' , 'Панов' , 'Панфилов' , 'Пахомов' , 'Пестов' , 'Петров' , 'Петухов' , 'Поляков' , 'Пономарёв' , 'Попов' , 'Потапов' , 'Прохоров' , 'Рогов' , 'Родионов' , 'Рожков' , 'Романов' , 'Русаков' , 'Рыбаков' , 'Рябов' , 'Савельев' , 'Савин' , 'Сазонов' , 'Самойлов' , 'Самсонов' , 'Сафонов' , 'Селезнёв' , 'Селиверстов' , 'Семёнов' , 'Сергеев' , 'Сидоров' , 'Силин' , 'Симонов' , 'Ситников' , 'Соболев' , 'Соколов' , 'Соловьёв' , 'Сорокин' , 'Степанов' , 'Стрелков' , 'Субботин' , 'Суворов' , 'Суханов' , 'Сысоев' , 'Тарасов' , 'Терентьев' , 'Тетерин' , 'Тимофеев' , 'Титов' , 'Тихонов' , 'Третьяков' , 'Трофимов' , 'Туров' , 'Уваров' , 'Устинов' , 'Фадеев' , 'Фёдоров' , 'Федосеев' , 'Федотов' , 'Филатов' , 'Филиппов' , 'Фокин' , 'Фомин' , 'Фомичёв' , 'Фролов' , 'Харитонов' , 'Хохлов' , 'Цветков' , 'Чернов' , 'Шарапов' , 'Шаров' , 'Шашков' , 'Шестаков' , 'Шилов' , 'Ширяев' , 'Шубин' , 'Щербаков' , 'Щукин' , 'Юдин'];
  28. var firstNames = ['Авдей', 'Аверкий', 'Авксентий', 'Агафон', 'Александр', 'Алексей', 'Альберт', 'Альвиан', 'Анатолий', 'Андрей', 'Антон', 'Антонин', 'Анфим', 'Аристарх ', 'Аркадий', 'Арсений', 'Артём ', 'Артур', 'Архипп', 'Афанасий', 'Богдан', 'Борис', 'Вадим', 'Валентин', 'Валерий', 'Валерьян', 'Варлам', 'Варфоломей ', 'Василий', 'Венедикт', 'Вениамин ', 'Викентий ', 'Виктор ', 'Виссарион', 'Виталий', 'Владимир ', 'Владислав', 'Владлен', 'Влас', 'Всеволод', 'Вячеслав', 'Гавриил', 'Галактион', 'Геласий', 'Геннадий', 'Георгий', 'Герасим', 'Герман', 'Глеб', 'Гордей', 'Григорий', 'Даниил ', 'Демид ', 'Демьян', 'Денис', 'Дмитрий', 'Добрыня', 'Донат', 'Дорофей', 'Евгений', 'Евграф', 'Евдоким', 'Евсей', 'Евстафий', 'Егор', 'Емельян', 'Еремей', 'Ермолай', 'Ефим', 'Ждан', 'Зиновий', 'Иакинф', 'Иван', 'Игнатий', 'Игорь', 'Иларион', 'Илья', 'Иннокентий', 'Ираклий ', 'Ириней', 'Исидор', 'Иулиан', 'Касьян', 'Ким ', 'Кирилл ', 'Климент', 'Кондрат ', 'Константин', 'Корнилий', 'Кузьма', 'Куприян', 'Лаврентий', 'Лев ', 'Леонид', 'Леонтий', 'Лука ', 'Лукий', 'Лукьян', 'Магистриан', 'Макар', 'Максим', 'Марк ', 'Мартын', 'Матвей', 'Мелентий', 'Мирон', 'Мирослав ', 'Митрофан', 'Михаил', 'Мстислав', 'Мэлор', 'Назар ', 'Нестор', 'Никанор', 'Никита', 'Никифор', 'Николай', 'Никон', 'Олег', 'Онисим', 'Павел', 'Пантелеймон', 'Парфений', 'Пётр', 'Платон ', 'Порфирий', 'Потап', 'Прокопий', 'Протасий', 'Прохор', 'Разумник', 'Родион', 'Роман ', 'Ростислав', 'Руслан', 'Савва', 'Савелий', 'Самуил ', 'Святополк', 'Святослав', 'Севастьян', 'Семён', 'Сергей', 'Сильвестр', 'Сильвест'];
  29. var letters = ['А', 'Б', 'В', 'Г', 'Д', 'Е', 'Ж', 'З', 'И', 'К', 'Л', 'М', 'Н', 'О', 'П', 'Р', 'С', 'Т', 'У', 'Ф', 'Х', 'Ц', 'Ч', 'Ш'];
  30. var words = ['абажур', 'аббревиатура', 'абитуриент', 'абонемент', 'абракадабра', 'абсент', 'авария', 'авгур', 'автокефалия', 'агальма', 'агломерат', 'аграф', 'адепт', 'адмирал', 'ажиотаж', 'азарт', 'акант', 'аквилон', 'аккламация', 'акколада', 'аккордеон', 'акрибия', 'акробатика', 'акростих', 'аксиология', 'акупунктура', 'акут', 'акушер', 'алеаторика', 'алембик', 'алиби', 'алкоголь', 'аллергия', 'аллюзия', 'алтын', 'альбом', 'альвеолы', 'альков', 'альманах', 'альтруизм', 'аляповатый', 'амазонка', 'амальгама', 'амбивалентный', 'амбиция', 'амбразура', 'амбушюр', 'амнистия', 'амортизация', 'амортизация', 'ампельные', 'амплуа', 'амуниция', 'амфора', 'анаколуф', 'анафема', 'анафора', 'ангажемент', 'анева', 'анекдот', 'анестезия', 'анналы', 'аномалия', 'антидатировать', 'антимоний', 'антология', 'антресоли', 'антропоморфизм', 'антураж', 'анфилада', 'анчоус', 'апатит', 'апелляция', 'апломб', 'апокриф', 'апологет', 'апостроф', 'апофема', 'апофеоз', 'аппетит', 'апробация', 'аптека', 'арабеска', 'арапник', 'арбуз', 'арена', 'ареология', 'арматура', 'армяк', 'арпеджио', 'арсенал', 'артачиться', 'артефакт', 'артикул', 'артиллерия', 'архимандрит', 'архипелаг', 'архитектоника', 'асимптота', 'аскорбиновая', 'аспект', 'аспид', 'аспид', 'астения', 'астроблема', 'атавизм', 'атаман', 'ателье', 'аттик', 'аудиенция', 'аудитор', 'аукцион', 'аускультация', 'аутентичный', 'аутодафе', 'афиша', 'афоризм', 'аффект', 'аффинаж', 'аффинный', 'ахимса', 'ахинея', 'бабочка', 'багатель', 'базилика', 'байдарка', 'байховый', 'бакалея', 'баклуша', 'бактриан', 'балаган', 'баланс', 'балдахин', 'балкон', 'балык', 'балюстрада', 'банда', 'бандероль', 'барак', 'барахло', 'барбакан', 'барбекю', 'барбос', 'баритон', 'баркарола', 'бармы', 'басма', 'басон', 'батик', 'батискаф', 'батон', 'баттута', 'баул', 'баута', 'башлык', 'баядера', 'бегемот', 'бедекер', 'бедуин', 'безалаберный', 'безмен', 'бейдж', 'бельведер', 'бергамот', 'бередить', 'берёста', 'бери-бери', 'берцо', 'бестиарий', 'бешбармак', 'библиотаф', 'бивак', 'бижутерия', 'бильбоке', 'бирюльки', 'битум', 'бифуркация', 'благоглупость', 'благоприобретенный', 'бланшировать', 'блин', 'блюсти', 'бляха', 'бобслей', 'богадельня', 'богема', 'болид', 'бонвиван', 'бонза', 'боскет', 'ботва', 'боты', 'бразды', 'брандспойт', 'брелок', 'бретель', 'бридость', 'бриндизи', 'брутальный', 'брюква', 'бубен', 'будировать', 'будуар', 'буерак', 'буженина', 'буклет', 'буланый', 'булка', 'бульвар', 'бульон', 'бунгало', 'бунчук', 'буран', 'буриме', 'бурлак', 'бурлеск', 'бурнус', 'бурт', 'бурый', 'бустрофедон', 'бутафория', 'бутоньерка', 'буханка', 'бухта', 'бухта', 'бучарда', 'быльё', 'бьеннале', 'бюджет', 'бюллетень', 'бюро', 'бюст', 'ваба', 'вакансия', 'вакцина', 'валандаться', 'валежник', 'валет', 'валькирии', 'вальяжный', 'вампука', 'ванна', 'вантуз', 'ваучер', 'вафля', 'ведута', 'веко', 'вектор', 'велеречивый', 'велюр', 'вензель', 'веранда', 'верблюд', 'вербовать', 'вереница', 'верея', 'вериги', 'верлибр', 'вернисаж', 'вероятный', 'верста', 'вертеп', 'вертопрах', 'верфь', 'вестибюль', 'ветеран', 'ветчина', 'вечор', 'взбалмошный', 'виадук', 'вигвам', 'викарий', 'виконт', 'вимперг', 'виньетка', 'вира', 'вира', 'виртуальный', 'виртуоз', 'вирши', 'високосный', 'виста', 'витать', 'внезапный', 'внимать', 'водевиль', 'водрузить', 'вокзал', 'волгнуть', 'волхв', 'вольготный', 'вольер', 'вольтижировка', 'ворвань', 'восток', 'вотум', 'вояж', 'всухомятку', 'втулка', 'вуаль', 'вульгарный', 'вурдалак', 'выспренний', 'выхухоль', 'вычурный', 'вязига', 'вящий', 'габитус', 'газета', 'галактика', 'галантин', 'галерея', 'галиматья', 'гало', 'галоп', 'галька', 'гамак', 'гамаши', 'гамбит', 'гандикап', 'гантель', 'гаплология', 'гаргулья', 'гарцевать', 'гастроли', 'гаучо', 'гвалт', 'гегемон', 'геенна', 'гекатомба', 'гемма', 'генезис', 'герб', 'герольд', 'гетто', 'гилея', 'гильза', 'гимн', 'гиньоль', 'гипотеза', 'гипотенуза', 'гирих', 'гирлянда', 'гланды', 'глетчер', 'глосса', 'глосса', 'глумиться', 'глухомань', 'гобелен', 'голем', 'гольфы', 'гомилетика', 'гончар', 'гораздо', 'горельеф', 'горизонт', 'горнило', 'горница', 'госпиталь', 'гостия', 'грация', 'грейпфрут', 'гривна', 'гризетка', 'грильяж', 'грифон', 'гросс', 'гротеск', 'грум', 'группа', 'гуашь', 'гувернантка', 'гугенот', 'гугол', 'гуж', 'гумно', 'гурман', 'гуру', 'гусеница', 'гюйс', 'дага', 'дагерротип', 'дайджест', 'дашики', 'дебаркадер', 'дебаты', 'дебелый', 'дебош', 'дебри', 'дебют', 'деванагари', 'дезабилье', 'дезавуировать', 'дезертир', 'деисус', 'декан', 'демиург', 'демпфер', 'денщик', 'деонтология', 'депиляция', 'депривация', 'дерби', 'десант', 'десмургия', 'дефект', 'дефилировать', 'дефис', 'джекпот', 'джингл', 'джонка', 'дзанни', 'диадема', 'диакритический', 'дианетика', 'диатез', 'диатриба', 'диван', 'дивертисмент', 'диез', 'диета', 'дикобраз', 'дилер', 'дилетант', 'дилижанс', 'диоптр', 'диплом', 'дирндл', 'дискант', 'дискуссия', 'диспетчер', 'диссидент', 'дисциплина', 'дисциплина', 'дифирамб', 'диффамация', 'доблесть', 'доброхот', 'довлеть', 'докучный', 'дольмен', 'доминанта', 'домино', 'домкрат', 'домна', 'домочадец', 'донатор', 'донжон', 'дортуар', 'доскональный', 'досуг', 'досье', 'дотировать', 'дотошный', 'драгоман', 'драже', 'драндулет', 'дратва', 'дребезжать', 'дредноут', 'дремать', 'дрессировать', 'дромадер', 'дротик', 'дульцинея', 'дуршлаг', 'дышло', 'дьяк', 'дюжина', 'евнух', 'егерь', 'егоза', 'ендова', 'епанча', 'ермолка', 'ерунда', 'есаул', 'ехидна', 'эллипс', 'эмфаза', 'эпистола', 'ёкать', 'ёрничать', 'жабо', 'жавель', 'жаккардовый', 'жалюзи', 'жардиньерка', 'жбан', 'желвак', 'жёлудь', 'жеманный', 'жемчуг', 'жерло', 'жиголо', 'жила', 'жирандоль', 'жировка', 'жмурить', 'жовиальный', 'жонглёр', 'жребий', 'жулик', 'жупел', 'журить', 'журфикс', 'жучить', 'жюльен', 'жюри', 'забрало', 'завзятый', 'загвоздка', 'закомара', 'закорки', 'залп', 'замухрышка', 'замша', 'запястье', 'зариться', 'заскорузлый', 'застенчивый', 'затрапез', 'заурядный', 'заядлый', 'звено', 'зверобой', 'зга', 'зевать', 'зельц', 'зерцало', 'зиждиться', 'зиккурат', 'зима', 'злаки', 'злополучный', 'злосчастный', 'знамение', 'зодиак', 'зомби', 'зона', 'зубр', 'зубрить', 'зубрить', 'зябнуть', 'иверень', 'иготь', 'игрек', 'идальго', 'идефикс', 'идиллия', 'идиома', 'иды', 'иератизм', 'иждивение', 'иже', 'изабель', 'изверг', 'известь', 'изголовье', 'изморозь', 'изнанка', 'изощрённый', 'изразец', 'изрядный', 'изящный', 'имманентный', 'имплицитный', 'импонировать', 'импресарио', 'инаугурация', 'инвектива', 'инвентарь', 'ингаляция', 'ингредиент', 'индифферентный', 'индульгенция', 'иней', 'инертный', 'инженю', 'инициатива', 'инкрустация', 'инкубатор', 'инкунабула', 'иноходь', 'инсинуация', 'инспирировать', 'инстанция', 'инстинкт', 'интеллигибельный', 'интенция', 'интернирование', 'интрига', 'инфант', 'инфекция', 'ипотека', 'ипохондрия', 'иррадиация', 'искренний', 'исподволь', 'испокон', 'исполин', 'истукан', 'итерация', 'ишак', 'кабала', 'кабачок', 'кабачок', 'кавалергард', 'кавардак', 'каватина', 'кавычки', 'кадастр', 'кадка', 'кадуцей', 'кадык', 'каземат', 'казуистика', 'каймак', 'калам', 'каландр', 'калач', 'калейдоскоп', 'калибр', 'калика', 'калокагатия', 'каломель', 'кальян', 'камвольный', 'камедь', 'канапе', 'канистра', 'канитель', 'канифоль', 'канопа', 'кант', 'кант', 'кантовать', 'кантовать', 'кантон', 'канун', 'канцелярия', 'каньон', 'канючить', 'капелла', 'капельдинер', 'каперсы', 'капитуляция', 'капище', 'капоте', 'каприччио', 'карабин', 'караван', 'карамель', 'караул', 'карбонад', 'карбункул', 'карбюратор', 'карга', 'кариатида', 'кариес', 'карий', 'карийон', 'карикатура', 'кармин', 'карнавал', 'карнация', 'карниз', 'картель', 'картридж', 'картуш', 'карусель', 'касатик', 'каска', 'каскад', 'кассация', 'кастелян', 'кастет', 'каталажка', 'катамаран', 'катет', 'кафедра', 'каюк', 'каюк', 'каяться', 'квадрига', 'квантор', 'квинтэссенция', 'квипрокво', 'квитанция', 'кворум', 'кегли', 'келья', 'кенотаф', 'кетгут', 'кивер', 'кингстон', 'киноварь', 'киоск', 'кипень', 'кипу', 'кираса', 'кирза', 'кисея', 'кистень', 'кичка', 'кишеть', 'кладезь', 'клан', 'кластер', 'клафт', 'клеврет', 'клейстер', 'клепсидра', 'клёцки', 'клёш', 'клиент', 'клише', 'клоака', 'клобук', 'клуатр', 'клюка', 'клянчить', 'коан', 'кобальт', 'кобениться', 'ковш', 'когорта', 'козни', 'койне', 'колба', 'коленкор', 'колено', 'колея', 'колика', 'коллапс', 'коллизия', 'коллоквиум', 'колоратура', 'колофон', 'колымага', 'колье', 'комель', 'комета', 'компания', 'компендиум', 'компетентный', 'компиляция', 'комплот', 'компрачикосы', 'компрометировать', 'комфорт', 'кон', 'конвой', 'конгениальный', 'кондовый', 'кондотьер', 'конклав', 'конкорданс', 'консилиум', 'консоль', 'консоме', 'конспирация', 'констатировать', 'констебль', 'консьерж', 'контаминация', 'контекст', 'контингент', 'контрфорс', 'контузия', 'конфессия', 'конфета', 'конфорка', 'конфуз', 'концессия', 'копить', 'копчик', 'кордон', 'кормило', 'корнишон', 'корпеть', 'корпия', 'корпускула', 'корреляция', 'корыто', 'косметика', 'костыль', 'костюм', 'котильон', 'котиться', 'котурны', 'кофр', 'кошма', 'кощунство', 'кравчий', 'краги', 'крамола', 'кратер', 'крахмал', 'креветка', 'крекер', 'крем', 'крем-брюле', 'кремль', 'крикет', 'кринолин', 'крипта', 'критерий', 'крокет', 'кроки', 'кромлех', 'кронштейн', 'кропить', 'кроше', 'круиз', 'крупье', 'крыжовник', 'крюшон', 'кряж', 'ксилофон', 'кубовый', 'кувез', 'кудель', 'кузен', 'кукситься', 'кукуруза', 'кулак', 'кули', 'кулинария', 'кулички', 'кулуары', 'кульминация', 'кумир', 'купаты', 'купировать', 'купол', 'куранты', 'курбет', 'курдюк', 'курень', 'куролесить', 'курсив', 'куртина', 'куртуазный', 'кустарь', 'кустода', 'куща', 'кэрол', 'кювет', 'лабардан', 'лабильный', 'лавировать', 'лавра', 'лазурь', 'лакей', 'лакмус', 'лакомый', 'лакуна', 'ламбрекен', 'ламинария', 'ламинирование', 'лампас', 'ланита', 'лапидарный', 'лапсердак', 'лапша', 'лассо', 'латентный', 'лафа', 'лафет', 'лацкан', 'лебезить', 'левада', 'левиафан', 'левкас', 'легион', 'леди', 'лекало', 'лелеять', 'лемма', 'лепидоптерология', 'лесть', 'летаргия', 'лигатура', 'ликвидность', 'ликовать', 'лиман', 'лимфа', 'линимент', 'литавры', 'литания', 'литография', 'лифт', 'лихоимец', 'лихорадка', 'личинка', 'лобби', 'логистика', 'лозунг', 'локон', 'ломбард', 'ломбер', 'лоно', 'лопасть', 'лосьон', 'лохань', 'лощёный', 'лояльность', 'лукоморье', 'лукративный', 'лупа', 'лучезарный', 'лыко', 'лысина', 'люкарна', 'люля-кебаб', 'люмбаго', 'люнет', 'лютня', 'лямка', 'ляпис', 'ляпсус', 'ляссе', 'магараджа', 'магистраль', 'мадригал', 'мазут', 'майевтика', 'майка', 'майна', 'майна', 'макадам', 'макаронизм', 'макраме', 'максима', 'малахай', 'малахит', 'малахольный', 'мамона', 'мандат', 'мандрагора', 'манёвр', 'манеж', 'манифест', 'манкировать', 'мантисса', 'маньеризм', 'марафет', 'маргарин', 'марево', 'мариновать', 'марионетка', 'маркетри', 'маркитант', 'маркшейдерия', 'марля', 'мармелад', 'мародёр', 'мартиролог', 'маршал', 'маска', 'маскарон', 'мастаба', 'мастика', 'масть', 'масштаб', 'математика', 'матёрый', 'матрас', 'матримониальный', 'матрона', 'матрос', 'маха', 'махинация', 'мачете', 'маятник', 'меандр', 'медальон', 'медиевистика', 'мезальянс', 'мездра', 'мезуза', 'мелодрама', 'мельхиор', 'мемуары', 'менгир', 'мениппея', 'мениск', 'ментол', 'ментор', 'меню', 'мерзкий', 'меринос', 'меркантильный', 'метемпсихоз', 'метоп', 'мещанин', 'мигрень', 'мизинец', 'мимесис', 'минарет', 'минога', 'мирабель', 'миро', 'мистерия', 'мистраль', 'митенки', 'мифологема', 'мишень', 'мишура', 'млеть', 'модий', 'мозаика', 'мозоль', 'мойра', 'мокьюментари', 'молибден', 'моллюск', 'молох', 'мольберт', 'монумент', 'мопс', 'мораторий', 'мордент', 'морена', 'морс', 'мошна', 'мощи', 'мракобесие', 'мрамор', 'муар', 'музей', 'мулине', 'муляж', 'мумия', 'мундир', 'мундштук', 'муниципалитет', 'мурава', 'мурава', 'мурло', 'мурыжить', 'мусака', 'мусолить', 'муссировать', 'мутон', 'муфта', 'муфта', 'мымра', 'мюзле', 'мюсли', 'набалдашник', 'набекрень', 'набоб', 'навет', 'навигация', 'навь', 'надменный', 'назойливый', 'наивный', 'наитие', 'намаз', 'наперсник', 'нарративный', 'настежь', 'науськать', 'нашатырь', 'невмы', 'недуг', 'нелицеприятный', 'неофит', 'несуразный', 'нетопырь', 'нетто', 'нивелировать', 'ниша', 'номенклатура', 'нониус', 'ностальгия', 'нострификация', 'нумизматика', 'нюанс', 'оазис', 'обелиск', 'обечайка', 'обиняк', 'облигатный', 'облыжный', 'обмишулить', 'оболтус', 'обструкция', 'обсценный', 'обух', 'обуять', 'обыденный', 'овация', 'оверлок', 'оглашенный', 'оголтелый', 'огрех', 'одалиска', 'одеон', 'одиозный', 'одр', 'ожерелье', 'ойкумена', 'оккультизм', 'окорок', 'оладья', 'омерта', 'омлет', 'омут', 'омфал', 'ономатопея', 'онтология', 'опак', 'опала', 'оплеуха', 'опричнина', 'опрятный', 'оракул', 'органолептический', 'ореол', 'оригами', 'орифламма', 'ортодоксальный', 'осанна', 'оселок', 'осклабиться', 'оскомина', 'остолоп', 'остракизм', 'ость', 'отара', 'отвага', 'отнюдь', 'отрок', 'офорт', 'офтальмология', 'оцелот', 'павильон', 'пагода', 'пазиграфия', 'паинька', 'паланкин', 'палантин', 'палевый', 'палимпсест', 'палиндром', 'палисад', 'палитра', 'паллиатив', 'пампасы', 'панацея', 'пандан', 'пандус', 'панегирик', 'панибратский', 'панировать', 'панталык', 'пантограф', 'панцирь', 'паперть', 'папоротник', 'парад', 'парадигма', 'парадокс', 'паранджа', 'паранойя', 'парапет', 'парафировать', 'паремия', 'парик', 'паритет', 'пария', 'пародия', 'парсуна', 'партес', 'парфорс', 'парча', 'парюра', 'пассат', 'пассатижи', 'пассия', 'патент', 'патернализм', 'патерностер', 'патина', 'патока', 'патруль', 'пафос', 'пахта', 'пацифизм', 'пачка', 'пачули', 'паштет', 'пегий', 'педант', 'пейджер', 'пейоративный', 'пектораль', 'пеленг', 'пемза', 'пенал', 'пентаграмма', 'пентакосиомедимны', 'пентименти', 'пентод', 'пеньюар', 'пеня', 'перепонка', 'пери', 'перипетия', 'периптер', 'перкуссия', 'перлюстрация', 'перманентный', 'перрон', 'пертурбация', 'пессимизм', 'пестовать', 'петарда', 'пиброх', 'пигалица', 'пигмей', 'пиетет', 'пикник', 'пилигрим', 'пилон', 'пилот', 'пилюля', 'пинакотека', 'пинетки', 'пион', 'пируэт', 'пищаль', 'плагиат', 'плаз', 'пластрон', 'плаха', 'плацебо', 'плацента', 'плед', 'пленэр', 'плесень', 'плеяда', 'плинтус', 'плутократия', 'плюгавый', 'победа', 'повидло', 'под', 'подвох', 'подоплёка', 'подспорье', 'подспудный', 'пойма', 'полати', 'полигон', 'полость', 'полость', 'полынья', 'помада', 'померанец', 'помпа', 'помпа', 'понёва', 'пономарь', 'понтон', 'поп', 'поп', 'поп-', 'поплин', 'порскать', 'портупея', 'порфир', 'порфира', 'посконь', 'поташ', 'потерна', 'потрафить', 'потчевать', 'почивать', 'пошиб', 'пошлый', 'прайд', 'пралине', 'преамбула', 'превалировать', 'превентивный', 'предержащий', 'презумпция', 'прелат', 'прерогатива', 'пресловутый', 'престидижитатор', 'престиж', 'претензия', 'претить', 'прецессия', 'прециозная(литература)', 'привередливый', 'привилегия', 'присные', 'приспешник', 'приторочить', 'притча', 'провизор', 'прозелит', 'прок', 'пролегомены', 'пропедевтика', 'пропилеи', 'просак', 'просодия', 'прострация', 'протагонист', 'протез', 'противень', 'протуберанец', 'профан', 'профессор', 'профиль', 'прохвост', 'прохиндей', 'прядать', 'пуансон', 'публицистика', 'пудинг', 'пулены', 'пунш', 'путти', 'пюпитр', 'пюре', 'пядь', 'рагу', 'радеть', 'радушный', 'раж', 'разгильдяй', 'рака', 'раковина', 'ралли', 'рампа', 'ранец', 'рапа', 'раппорт', 'рапсодия', 'распашонка', 'расстегай', 'растр', 'ратовать', 'рахит', 'рачительный', 'рдеть', 'реборда', 'ребус', 'реванш', 'реверанс', 'реверс', 'ревность', 'ревю', 'регтайм', 'редут', 'реестр', 'резиньяция', 'рейтузы', 'реквием', 'реквизит', 'рекламация', 'рекогносцировка', 'релевантный', 'реликвия', 'ремесло', 'реминисценция', 'ремиссия', 'ремонт', 'ренегат', 'реноме', 'репеллент', 'репер', 'репертуар', 'репетиция', 'реплика', 'реприманд', 'репутация', 'рескрипт', 'ресницы', 'рессора', 'ретабло', 'ретроград', 'референт', 'рефрен', 'рецепт', 'рецидив', 'ригоризм', 'риелтор', 'риза', 'рикошет', 'рикша', 'рипида', 'ристалище', 'ритон', 'ритуал', 'рифли', 'ричеркар', 'рогожа', 'розвальни', 'рокада', 'рокировка', 'ромашка', 'ростра', 'ротонда', 'роуминг', 'роялти', 'рудимент', 'руины', 'рукопашный', 'руно', 'рупор', 'рустика', 'рутина', 'рында', 'рында', 'рыцарь', 'ряса', 'саадак', 'саботаж', 'саврасая', 'сагиттальный', 'саквояж', 'сакраментальный', 'салоп', 'салями', 'саман', 'самум', 'сани', 'сапа', 'сарабанда', 'сарацины', 'сардонический', 'сарказм', 'саронг', 'сарос', 'сатир', 'сатира', 'сатисфакция', 'сатрап', 'сафари', 'саше', 'сбир', 'свита', 'свита', 'седан', 'сезам', 'секрет', 'секрет', 'секуляризация', 'селадон', 'селитра', 'сельва', 'семестр', 'семинария', 'сенсация', 'сенсор', 'сентенция', 'сепия', 'сервелат', 'сервилизм', 'сердитый', 'сердюк', 'серсо', 'сессия', 'сетовать', 'сефарды', 'сецессия', 'сиеста', 'сикофант', 'силок', 'силок', 'силос', 'симпатия', 'симпозиум', 'симультанный', 'синекдоха', 'синекура', 'синкопа', 'синоптика', 'сиречь', 'сиринга', 'сирокко', 'сиртаки', 'ситро', 'скабрёзный', 'скалка', 'скальпель', 'скандировать', 'скарб', 'скаредный', 'скатерть', 'скатология', 'сквер', 'скетч', 'скипетр', 'скит', 'скордатура', 'скотома', 'скотч', 'скотч', 'скрижаль', 'скудель', 'скула', 'скупердяй', 'слинг', 'слоган', 'слюда', 'смальта', 'смарагд', 'смекалка', 'смерч', 'сметана', 'смиренный', 'смородина', 'смурый', 'сноб', 'соблазн', 'соёмбо', 'солецизм', 'соловеть', 'солод', 'солома', 'сомелье', 'сомнамбулизм', 'сомон', 'сонм', 'сопрано', 'сосиска', 'соте', 'софит', 'соха', 'спагетти', 'спекуляция', 'спонтанный', 'спорадический', 'спунеризм', 'стайер', 'сталактит', 'стапель', 'статут', 'стаффаж', 'стекло', 'стела', 'стереотип', 'стерня', 'стигма', 'стилет', 'стоеросовый', 'стопа', 'сторица', 'стортинг', 'стохастический', 'страз', 'стрежень', 'стрихнин', 'стропило', 'струбцина', 'стряпчий', 'стыд', 'субтильный', 'сугубый', 'судно', 'судно', 'судорога', 'суета', 'суккуленты', 'сулить', 'сума', 'сумбур', 'супинатор', 'супостат', 'сургуч', 'сурдина', 'сурик', 'суррогат', 'сусек', 'суси', 'суслик', 'сусло', 'сутана', 'сутулый', 'сфинкс', 'схизма', 'сыворотка', 'сычуг', 'сюжет', 'сюзерен', 'сюрприз', 'табернакль', 'табу', 'табурет', 'тавтограмма', 'таган', 'тайга', 'такса', 'такса', 'таксидермия', 'таксономия', 'талион', 'талисман', 'талон', 'тамбур', 'тандем', 'тапёр', 'тара', 'тартинка', 'тасовать', 'тезаурус', 'тёзка', 'текстура', 'телега', 'теллурий', 'тембр', 'темпера', 'темя', 'тенденция', 'тенёта', 'теорема', 'терапия', 'тератология', 'терем', 'термы', 'терракота', 'тесситура', 'тетива', 'тигель', 'тилак', 'типун', 'тирс', 'тиски', 'тифон', 'товарищ', 'тодес', 'токката', 'толокно', 'томагавк', 'тонарм', 'топиари', 'торба', 'тормоз', 'тороватый', 'торшер', 'травести', 'традиция', 'трамплин', 'трафарет', 'третировать', 'тривиум', 'тригонометрия', 'тризна', 'трикстер', 'троллейбус', 'тропарь', 'трущоба', 'трын-трава', 'трюизм', 'туз', 'туз', 'тундра', 'тунеядец', 'тупей', 'тура', 'турбулентный', 'турель', 'туфли', 'туша', 'тщательный', 'тын', 'тысяча', 'тьма', 'тьма', 'тюбетейка', 'тюльпан', 'тюрьма', 'тютелька', 'увертюра', 'удручить', 'укулеле', 'ультиматум', 'уповать', 'урна', 'урюк', 'устрица', 'утилитарный', 'утопия', 'утрировать', 'ухаб', 'ухналь', 'ушат', 'факел', 'факсимиле', 'фактор', 'фактотум', 'факультет', 'фальц', 'фальцет', 'фанатик', 'фанера', 'фантасмагория', 'фанфара', 'фанфарон', 'фармакопея', 'фарс', 'фартук', 'фасция', 'фат', 'фата', 'фата-моргана', 'федерация', 'феерия', 'фейерверк', 'фельдшер', 'фельетон', 'ферзь', 'фермуар', 'феромоны', 'ферязь', 'фестиваль', 'фестон', 'фетиш', 'фетр', 'фибра', 'фигли-мигли', 'фикция', 'филировать', 'филистер', 'фильдекос', 'фимиам', 'финт', 'фискал', 'фистула', 'флажолет', 'фланировать', 'флибустьер', 'фляга', 'фол', 'фольклор', 'фонарь', 'фондю', 'форсировать', 'форс-мажор', 'форсунка', 'фортуна', 'форум', 'фотопериодизм', 'фреза', 'фрейлина', 'фривольный', 'фрикаделька', 'фрондировать', 'фронтиспис', 'фряг', 'фугас', 'фуникулёр', 'фура', 'фураж', 'фургон', 'фуршет', 'футор', 'фьорд', 'фюзеляж', 'хабанера', 'хай-фай', 'халат', 'халупа', 'хам', 'ханжа', 'харизма', 'хартия', 'хирургия', 'хлябь', 'хобот', 'холостой', 'хоругвь', 'хоры', 'хрестоматия', 'хризантема', 'хтонический', 'цезура', 'цейтнот', 'целибат', 'целовальник', 'центон', 'церебральный', 'церемония', 'церковь', 'цикля', 'цикута', 'цилиндр', 'циновка', 'цистерна', 'цитадель', 'цукат', 'чага', 'чардаш', 'чартер', 'чаять', 'чебурек', 'чело', 'чепрак', 'череп', 'чёрствый', 'чертог', 'чехарда', 'чечётка', 'чипсы', 'чресла', 'чубук', 'чулан', 'шагрень', 'шайка', 'шайка', 'шамберьер', 'шампунь', 'шанец', 'шантаж', 'шарада', 'шарж', 'шарлатан', 'шарнир', 'шатёр', 'шафер', 'шафран', 'шахер-махер', 'швабра', 'шебека', 'шевиот', 'шедевр', 'шемизетка', 'шенкель', 'шептала', 'шибболет', 'шик', 'шиньон', 'шкатулка', 'шлейф', 'шмуцтитул', 'шовинизм', 'шоры', 'шоссе', 'шофёр', 'шпалера', 'шпатель', 'шпигат', 'шпилька', 'шпингалет', 'шпиндель', 'шпунт', 'штабель', 'штапель', 'штихель', 'штопать', 'штора', 'штрипка', 'шуга', 'шумовка', 'шуровать', 'шурф', 'шхеры', 'щеколда', 'щелкопёр', 'щёлочь', 'щепетильный', 'щиколотка', 'эвристика', 'эвфемизм', 'эйфория', 'экзегеза', 'экзотерика', 'экивоки', 'экскурсия', 'экспромт', 'экстраполяция', 'эксцесс', 'элегантный', 'эмаль', 'эмансипация', 'эмбарго', 'эмблема', 'эмбрион', 'эмпатия', 'эмпириокритицизм', 'эмуляция', 'эннен', 'эоловый', 'эпатаж', 'эпигон', 'эпиграф', 'эпизод', 'эпиталама', 'эпопея', 'эра', 'эринии', 'эркер', 'эрозия', 'эрудиция', 'эскалоп', 'эсквайр', 'эскорт', 'эспадрон', 'эспланада', 'эспонтон', 'эссе', 'эстафета', 'эстетика', 'эстокада', 'этикетка', 'эфебы', 'эфемерный', 'эфес', 'эшелон', 'юдоль', 'юркий', 'юродивый', 'ютиться', 'ягдташ', 'ягода', 'язвительный', 'ямщик', 'янычары', 'яппи', 'ярмарка', 'ярмо', 'яровой', 'ясли', 'ятрогения', 'яхонт']; // TODO
  31.  
  32.  
  33.  
  34. var connection = mysql.createConnection(mysqlSetttings);
  35. connection.connect(function(err) { if (err) throw err; });
  36.  
  37. var randomAuthor = lastNames[getRandomInt(0, lastNames.length)] + ' ' + firstNames[getRandomInt(0, firstNames.length)] + ' ' + letters[getRandomInt(0, letters.length)] + '.';
  38. var titleLength = getRandomInt(1,3);
  39. var randomTitle = '';
  40. for (var j=0; j < titleLength; j++)
  41. randomTitle += words[getRandomInt(0, words.length)] + ' ';
  42. var randomDescription = '';
  43. var descLength = getRandomInt(5,8);
  44. for (var j=0; j < descLength; j++)
  45. randomDescription += words[getRandomInt(0, words.length)] + ' ';
  46. var randomDate = getRandomInt(1,26) + '.' + getRandomInt(1,12) + '.' + getRandomInt(1960, 1980);
  47.  
  48. var query = 'INSERT into books(`title`, `date`, `author`, `description`) values(' +
  49. '"' + randomTitle + '", '+
  50. '"' + randomDate + '", '+
  51. '"' + randomAuthor + '", '+
  52. '"' + randomDescription + '")';
  53.  
  54.  
  55. for (var i = 0; i < 20000; i++)
  56. {
  57.  
  58. connection.query(query, function (err, result, fields)
  59. {
  60. if (err) throw err;
  61. console.log(result);
  62. });
  63.  
  64. randomAuthor = lastNames[getRandomInt(0, lastNames.length)] + ' ' + firstNames[getRandomInt(0, firstNames.length)] + ' ' + letters[getRandomInt(0, letters.length)] + '.';
  65. titleLength = getRandomInt(1,3);
  66. randomTitle = '';
  67. for (var j=0; j < titleLength; j++)
  68. randomTitle += words[getRandomInt(0, words.length)] + ' ';
  69.  
  70. randomDescription = '';
  71. descLength = getRandomInt(5,8);
  72. for (var j=0; j < descLength; j++)
  73. randomDescription += words[getRandomInt(0, words.length)] + ' ';
  74.  
  75. randomDate = getRandomInt(1,26) + '.' + getRandomInt(1,12) + '.' + getRandomInt(1960, 1980);
  76.  
  77. query = 'INSERT into books(`title`, `date`, `author`, `description`) values(' +
  78. '"' + randomTitle + '", '+
  79. '"' + randomDate + '", '+
  80. '"' + randomAuthor + '", '+
  81. '"' + randomDescription + '")';
  82.  
  83. }
  84.  
  85. connection.end();
  86. }
  87.  
  88. //fill table with imagine books
  89. var generateTable = false;
  90.  
  91. if (generateTable)
  92. {
  93. setTimeout(fillBooks, 100);
  94. setTimeout(fillBooks, 200);
  95. setTimeout(fillBooks, 300);
  96. setTimeout(fillBooks, 400);
  97. fillBooks();
  98. }
  99.  
  100.  
  101.  
  102. function reloadCache()
  103. {
  104. // check for count b4 update?
  105. var connection = mysql.createConnection(mysqlSetttings);
  106.  
  107. connection.connect(function(err) { if (err) throw err; });
  108. connection.query("SELECT * FROM books", function ( err, result, fields)
  109. {
  110. if (err) throw err;
  111. g_Cache.books = result;
  112. this.end();
  113. });
  114.  
  115. //connection.end();
  116. console.log("cache updated!");
  117. }
  118.  
  119. reloadCache(); // first load
  120.  
  121.  
  122. setInterval(reloadCache, 5000); // regular cache update every 5 secs.
  123.  
  124.  
  125. function buildBody(offset, per_page, page)
  126. {
  127. var javascript =
  128. `
  129.  
  130. <script>
  131.  
  132. function saveBook(id, book_id)
  133. {
  134. var i_title = document.getElementById('i_title_' + id);
  135. var i_date = document.getElementById('i_date_' + id);
  136. var i_author = document.getElementById('i_author_' + id);
  137. var i_description = document.getElementById('i_description_' + id);
  138. var row = document.getElementById('row_' + id);
  139.  
  140.  
  141. row.cells[1].innerHTML = '<td id="td_title_' + id + '">' + i_title.value + '</td>';
  142. row.cells[2].innerHTML = '<td id="td_date_' + id + '">' + i_date.value + '</td>';
  143. row.cells[3].innerHTML = '<td id="td_author_' + id + '">' + i_author.value + '</td>';
  144. row.cells[4].innerHTML = '<td id="td_description_' + id + '">' + i_description.value + '</td>';
  145.  
  146. row.cells[5].innerHTML = '<button onclick="onEditClick(' + id +',' + book_id +')">edit</button>';
  147.  
  148.  
  149. var http = new XMLHttpRequest();
  150. http.open('POST', 'save.exe', true);
  151. http.setRequestHeader('Content-Type', 'application/json');
  152. var data = JSON.stringify(
  153. {
  154. "id" : book_id,
  155. "title" : i_title.value,
  156. "date" : i_date.value,
  157. "author" : i_author.value,
  158. "description" : i_description.value
  159. });
  160. http.send(data);
  161.  
  162.  
  163. }
  164.  
  165. function onEditClick(id, book_id)
  166. {
  167. var td_title = document.getElementById('td_title_' + id);
  168. var td_date = document.getElementById('td_date_' + id);
  169. var td_author = document.getElementById('td_author_' + id);
  170. var td_description = document.getElementById('td_description_' + id);
  171.  
  172.  
  173. var row = document.getElementById('row_' + id);
  174. row.cells[1].innerHTML = '<input value="' + td_title.innerHTML + '" type="text" id="i_title_' + id + '">';
  175. row.cells[2].innerHTML = '<input value="' + td_date.innerHTML + '" type="text" id="i_date_' + id + '">';
  176. row.cells[3].innerHTML = '<input value="' + td_author.innerHTML + '" type="text" id="i_author_' + id + '">';
  177. row.cells[4].innerHTML = '<input value="' + td_description.innerHTML + '" type="text" id="i_description_' + id + '">';
  178. row.cells[5].innerHTML = '<button onclick="saveBook(' + id +',' + book_id + ')">save</button>';
  179. }
  180.  
  181.  
  182. </script>
  183. `;
  184. var style = `
  185. <style>
  186.  
  187. table, th, td
  188. {
  189. border: 1px solid black;
  190. }
  191.  
  192.  
  193. <style type="text/css">
  194. body {
  195. font-family: "Lucida Sans Unicode", "Lucida Grande", "Segoe Ui";
  196. }
  197.  
  198. /* Table */
  199. table {
  200. border-collapse: collapse;
  201. font-size: 13px;
  202. }
  203. th,
  204. td {
  205. border: 1px solid #e1edff;
  206. padding: 7px 17px;
  207. }
  208. .title {
  209. caption-side: bottom;
  210. margin-top: 12px;
  211. }
  212.  
  213.  
  214. thead th {
  215. background-color: #508abb;
  216. color: #FFFFFF;
  217. border-color: #6ea1cc !important;
  218. text-transform: uppercase;
  219. }
  220.  
  221.  
  222. tbody td {
  223. color: #353535;
  224. }
  225. tbody td:first-child,
  226. tbody td:last-child,
  227. tbody td:nth-child(4) {
  228. text-align: right;
  229. }
  230. tbody tr:nth-child(odd) td {
  231. background-color: #f4fbff;
  232. }
  233. tbody tr:hover td {
  234. background-color: #ffffa2;
  235. border-color: #ffff0f;
  236. transition: all .2s;
  237. }
  238.  
  239.  
  240. tfoot th {
  241. background-color: #e5f5ff;
  242. }
  243. tfoot th:first-child {
  244. text-align: left;
  245. }
  246. tbody td:empty
  247. {
  248. background-color: #ffcccc;
  249. }
  250. </style>
  251.  
  252. </style>
  253. `;
  254.  
  255. var body = javascript + style + '<body>';
  256. var pages = '<a href="?page=1"> first </a>';
  257. var totalPages = Math.round( (g_Cache.books.length + per_page - 1) / per_page );
  258.  
  259. for (var k = page - 5; k < page + 5 && k < totalPages; k++)
  260. {
  261. if (k > 1)
  262. {
  263. pages += '<a href="?page=' + (k) + '"> ' + (k) + ' </a>';
  264. //j++;
  265. }
  266. }
  267. pages += '<a href="?page=' + totalPages + '"> last (' + (totalPages) + ') </a>';
  268.  
  269. body += pages;
  270. body += '<table width="100%" style="border: 1px solid black">';
  271. body += '<thead><th>#</th><th>Title</th><th>Date</th><th>Author</th><th>Description</th><th>Action</th></thead>';
  272.  
  273.  
  274.  
  275.  
  276. var count = per_page;
  277. if (g_Cache.books.length < count)
  278. count = g_Cache.books.length;
  279.  
  280. // TODO table
  281. // TODO html all td
  282. for (var i = 0; i < count; i++)
  283. {
  284. var item_index = i + offset - per_page;
  285. if (item_index > g_Cache.books.length - 1) break;
  286. body += '<tr id="row_' + i + '">' + '<td>' + (i+1) + '</td>' +
  287.  
  288. '<td id="td_title_' + i + '">' + g_Cache.books[item_index].title + '</td>' +
  289. '<td id="td_date_' + i + '">' + g_Cache.books[item_index].date + '</td>' +
  290. '<td id="td_author_' + i + '">' + g_Cache.books[item_index].author + '</td>' +
  291. '<td id="td_description_' + i + '">' + g_Cache.books[item_index].description + '</td>' +
  292. '<td> <button onclick="onEditClick(' + i + ', ' + g_Cache.books[item_index].id + ' )">edit</button></td>' +
  293. '</tr>';
  294. }
  295.  
  296. body += '</table>';
  297.  
  298. //TODO: add per pageX
  299. // Google: koa2 redirect after per page selection.
  300.  
  301.  
  302. body += '</body>';
  303.  
  304. return body;
  305. }
  306.  
  307.  
  308. function updateRecord(id, title, date, author,description)
  309. {
  310. var connection = mysql.createConnection(mysqlSetttings);
  311.  
  312. connection.connect(function(err) { if (err) throw err; });
  313.  
  314. var query = 'UPDATE books SET `title`="' + title +
  315. '", `date`="' + date +
  316. '", `author`="' + author +
  317. '", `description`="' + description +
  318. '" WHERE id=' + id;
  319. //console.log(query); // debug stuff
  320. connection.query(query, function ( err, result, fields) { if (err) throw err; });
  321. connection.end();
  322. }
  323.  
  324. app.use(bodyParser());
  325.  
  326. app.use(async (ctx, next) =>
  327. {
  328. //await next();
  329.  
  330. if (!ctx.cookies.get('per-page'))
  331. await ctx.cookies.set('per-page', 50);
  332.  
  333.  
  334. if (ctx.method === "GET")
  335. {
  336. var per_page = Math.round(ctx.cookies.get('per-page'));
  337. var page = 1;
  338.  
  339. if (ctx.query['page'] != null)
  340. page = Math.round(ctx.query['page']);
  341.  
  342. var offset = page * per_page;
  343.  
  344. ctx.body = buildBody(offset, per_page, page);
  345.  
  346.  
  347.  
  348. }
  349.  
  350. if (ctx.method === "POST")
  351. {
  352. if (ctx.path === "/save.exe")
  353. {
  354. //console.log(ctx.request.body);
  355. var id = ctx.request.body['id'];
  356. var title = ctx.request.body['title'];
  357. var date = ctx.request.body['date'];
  358. var author = ctx.request.body['author'];
  359. var description = ctx.request.body['description'];
  360. updateRecord(id, title, date, author, description);
  361. ctx.status = 200;
  362. setTimeout(reloadCache, 100); // we have to update cache!
  363. console.log('saving done!');
  364. }
  365. }
  366.  
  367. });
  368.  
  369. if (!module.parent) app.listen(3000);
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement