Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1961 (permalink)  
Старый 14.08.2016, 14:19
Аватар для nerv_
junior
Отправить личное сообщение для nerv_ Посмотреть профиль Найти все сообщения от nerv_
 
Регистрация: 29.11.2011
Сообщений: 3,924

Возник вопрос по работе с формами на стороне сервера (koa/express). Требуется програмный механизм создания, валидации, рендеринга формы. Приведу пример из php. Там есть такая штука, как Zend_Form, которая все это умеет. Выглядит как-то так

$form = $this->getBaseForm();
$form
  ->addElement('text', 'title', 
    array(
      'label' => 'Название',
      'required' => true
    )
  )
  ->addElement('textarea', 'text', 
    array(
      'label' => 'Текст',
      'cols' => 65,
      'rows' => 2
    )
  )->addElement('file', 'image', 
    array(
      'label' => 'Изображение 960x340'
    )
  )
  ->addElement('text', 'link', 
    array(
      'label' => 'Ссылка для перехода'
    )
  )->addElement('submit', 'submit', 
    array(
      'label' => 'Сохранить'
    )
  );


в шаблоне
Код:
{$form}
Есть какие-нибудь подобные модули для koa/express? Можно отдельные, но, желательно, чтобы они хорошо интегрировались между собой
__________________
Чебурашка стал символом олимпийских игр. А чего достиг ты?
Тишина - самый громкий звук
Ответить с цитированием
  #1962 (permalink)  
Старый 14.08.2016, 14:37
Аватар для destus
Профессор
Отправить личное сообщение для destus Посмотреть профиль Найти все сообщения от destus
 
Регистрация: 18.05.2011
Сообщений: 1,207

nerv_,
Сам не использовал, но выглядит симпатично https://github.com/caolan/forms
Ответить с цитированием
  #1963 (permalink)  
Старый 14.08.2016, 16:27
Аватар для nerv_
junior
Отправить личное сообщение для nerv_ Посмотреть профиль Найти все сообщения от nerv_
 
Регистрация: 29.11.2011
Сообщений: 3,924

destus, спасибо, суть ты уловил верно.

Сообщение от destus
Сам не использовал, но выглядит симпатично https://github.com/caolan/forms
Я бы не сказал, что это выглядит симпатично. Об этом даже сам автор пишет:
Цитата:
This code is still in its infancy
но, похоже, альтернатив нет и это грустно

Скажу так: первый, кто запилит подобный пакет, будет молодец и соберет мнгого лайков на гитхабе.

---

UPD
В зенде на мой взгляд достаточно хорошее продуманное апи, можно писать на его основе https://framework.zend.com/manual/1....uickstart.html

По сути требуется объединить ряд пакетов:
- создание (писать руками)
- парсинга (formidable?) (не уверен, что этот пункт нужен)
- валидации (использовать сторонние пакеты, предусмотреть асинхронную валидацию)
- рендеринга (добавить возможность использовать движка шаблонов)
в одно удобное апи
__________________
Чебурашка стал символом олимпийских игр. А чего достиг ты?
Тишина - самый громкий звук

Последний раз редактировалось nerv_, 14.08.2016 в 16:45.
Ответить с цитированием
  #1964 (permalink)  
Старый 15.08.2016, 16:28
Аватар для trikadin
Модератор
Отправить личное сообщение для trikadin Посмотреть профиль Найти все сообщения от trikadin
 
Регистрация: 27.04.2010
Сообщений: 3,417

nerv_

1) Возьми json-схему, на стороне сервера валидируй ею данные, которые пришли, на стороне клиента -- возьми генератор формы по ней (тысячи их, и под ангуляр, и под реакт, и под jquery, и вообще под что угодно).
2) Совмести.
3) ??????
4) PROFIT!
__________________
Читайте:
Ты любопытный) Всё-таки, ничему в этом мире не помешает хорошая доля юмора)
Как спросить, чтобы вам ответили
Часто Задаваемые Вопросы (FAQ)
Ответить с цитированием
  #1965 (permalink)  
Старый 15.08.2016, 22:26
Аватар для nerv_
junior
Отправить личное сообщение для nerv_ Посмотреть профиль Найти все сообщения от nerv_
 
Регистрация: 29.11.2011
Сообщений: 3,924

Сообщение от trikadin
1) Возьми json-схему, на стороне сервера валидируй ею данные, которые пришли, на стороне клиента -- возьми генератор формы по ней (тысячи их, и под ангуляр, и под реакт, и под jquery, и вообще под что угодно).
1) я тебе говорю, что мне нужно разметку на сервере генерировать
2) не вижу тысяч


UPD
После долгих поисков по npm нашел несколько:
https://www.npmjs.com/package/jsonschema2html
https://www.npmjs.com/package/jsonschema2form-nested
https://www.npmjs.com/package/json-editor
https://www.npmjs.com/package/iso-form
https://github.com/brutusin/json-forms
__________________
Чебурашка стал символом олимпийских игр. А чего достиг ты?
Тишина - самый громкий звук

Последний раз редактировалось nerv_, 16.08.2016 в 18:48.
Ответить с цитированием
  #1966 (permalink)  
Старый 15.08.2016, 23:09
Аватар для trikadin
Модератор
Отправить личное сообщение для trikadin Посмотреть профиль Найти все сообщения от trikadin
 
Регистрация: 27.04.2010
Сообщений: 3,417

Сообщение от nerv_
я тебе говорю, что мне нужно разметку на сервере генерировать
Т. е. клиентской логики у тебя там нет вообще? Никак данные на клиенте не валидируешь и никакие кастомные поля ввода не добавляешь?

Сообщение от nerv_
не вижу тысяч
112 тыс. результатов
__________________
Читайте:
Ты любопытный) Всё-таки, ничему в этом мире не помешает хорошая доля юмора)
Как спросить, чтобы вам ответили
Часто Задаваемые Вопросы (FAQ)
Ответить с цитированием
  #1967 (permalink)  
Старый 16.08.2016, 18:47
Аватар для nerv_
junior
Отправить личное сообщение для nerv_ Посмотреть профиль Найти все сообщения от nerv_
 
Регистрация: 29.11.2011
Сообщений: 3,924

Сообщение от trikadin
Т. е. клиентской логики у тебя там нет вообще? Никак данные на клиенте не валидируешь и никакие кастомные поля ввода не добавляешь?
В данном случае практически нет

Сообщение от trikadin
112 тыс. результатов
из которых 5 полезных, что составляет
alert(5/1120);

у меня, кстати, написано 170k результатов
__________________
Чебурашка стал символом олимпийских игр. А чего достиг ты?
Тишина - самый громкий звук
Ответить с цитированием
  #1968 (permalink)  
Старый 16.08.2016, 23:32
Аватар для trikadin
Модератор
Отправить личное сообщение для trikadin Посмотреть профиль Найти все сообщения от trikadin
 
Регистрация: 27.04.2010
Сообщений: 3,417

Сообщение от nerv_
В данном случае практически нет
Сделай серверную рендерилку форм по JSON-схеме на Snakeskin Сообщество тебе спасибо скажет.
__________________
Читайте:
Ты любопытный) Всё-таки, ничему в этом мире не помешает хорошая доля юмора)
Как спросить, чтобы вам ответили
Часто Задаваемые Вопросы (FAQ)
Ответить с цитированием
  #1969 (permalink)  
Старый 17.08.2016, 00:11
Аватар для kobezzza
Быдлокодер;)
Отправить личное сообщение для kobezzza Посмотреть профиль Найти все сообщения от kobezzza
 
Регистрация: 19.11.2010
Сообщений: 4,338

Цитата:
Сделай серверную рендерилку форм по JSON-схеме на Snakeskin
Дык, ты же вроде писал, что у себя в проекте уже такое написал, не?)
__________________
kobezzza
code monkey
Ответить с цитированием
  #1970 (permalink)  
Старый 17.08.2016, 02:07
Аватар для trikadin
Модератор
Отправить личное сообщение для trikadin Посмотреть профиль Найти все сообщения от trikadin
 
Регистрация: 27.04.2010
Сообщений: 3,417

Сообщение от kobezzza
Дык, ты же вроде писал, что у себя в проекте уже такое написал, не?)
У меня на Vue, сорян) И дальше прототипа оно так и не ушло...
__________________
Читайте:
Ты любопытный) Всё-таки, ничему в этом мире не помешает хорошая доля юмора)
Как спросить, чтобы вам ответили
Часто Задаваемые Вопросы (FAQ)
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Смишных картинок тред megaupload Оффтопик 3447 03.07.2023 09:47
React'а тред melky Оффтопик 246 13.11.2016 08:07
Webpack'а тред nerv_ Сборка проекта, утилиты 58 07.05.2016 13:46
Смешных историй тред monolithed Оффтопик 11 04.03.2015 04:20
Смишных видео с намеком тред godofjavascript Оффтопик 4 30.12.2012 23:50