[Moscow.pm] Mojolicious & CGI

Peter Vereshagin peter на vereshagin.org
Сб Дек 25 10:30:50 PST 2010


We can live forever looking to my eyes, moscow-pm!
2010/12/25 04:34:36 -0800 moscow-pm-request на pm.org => To moscow-pm на pm.org :

> я невнятно написал вопрос видимо.
> 
> мне не нужен сайт вида
> 
> http://server.zone/controller/action
> 
> мне нужен сайт вида
> 
> http://server.zone?controller=bla1&action=bla2
> 
> Кучу примеров по реализации сайтов первого вида я нашел. спасибо за еще один
> - пригодится :) Но мне нужно сохранить виды урлов в проекте такими же как
> они были. А так же не требовать от пользователей перенастройки apache
> (который сейчас у них просто выполняет cgi-скрипты в конкретной директории)
> 
> 25 декабря 2010 г. 13:14 пользователь Юрий Халявин <snufrick на gmail.com>написал:
> 
> > Вот тут пример вики сделанной, на Mojolicious::Lite.
> > https://github.com/shoorick/mojowka/blob/master/mojowka
> >
> > Ищете "get '/change_password/:id' => [ id => qr/\d+/ ] =>
> > 'change_password';", и все становится понятно.
> >
> > mojowka -- отличный пример, чтобы начать работать с Mojolicious.
> >
> >
> > 25 декабря 2010 г. 13:00 пользователь Ivan Petrov <i.petro.77.00 на gmail.com
> > > написал:
> >
> >> Я пока только разбираюсь с Mojo.
> >>
> >> Есть один проект, который хочется перевести на Mojo (в рамках этого
> >> перевода Mojo и изучится), однако хочется сохранить имеющуюся иерархию
> >> ссылок.
> >>
> >> имеется скрипт, abc.cgi, который обрабатывает примерно такие запросы:
> >>
> >> abc.cgi?action=view&document=123  - просмотр документа 123
> >> abc.cgi?action=save&document=123  - запись документа 123
> >> abc.cgi?action=delete&document=123 - удаление документа 123
> >>
> >> abc.cgi?action=doclist&doctype=555 - просмотр списка документов с типом
> >> 555
> >>
> >> и так далее.
> >>
> >> как в терминах mojo описать такой роутинг?
> >>
> >> если взять Mojolicious::Lite и написать тест:
> >>
> >> abc.cgi
> >>
> >> use Mojolicious::Lite;
> >>
> >> get '/abc.cgi' => sub {
> >>   $_[0]->render(template => 'test');
> >> };
> >> app->start('cgi');
> >>
> >>
> >> __DATA__
> >> @@ test.html.ep
> >>
> >> test
> >>
> >> то на запрос http://server.domain/abc.cgi отдает 404, работает только get
> >> '/' и get '/*'. Как выйти из положения? не хочется пользователей заставлять
> >> перенастраивать апач, да и урлы у них уже в закладках положены примерно
> >> такого вида как написсано.

если пускать не cgi, а другие интерфейсы, на которые способно mojo,  то всё
равно заново настраивать веб-сервер, тогда остаётся только проблема закладок у
леммингов. Решается рерайтами урла.
пускать тяжёлые фреймворки в cgi это не дело, поэтому всё равно в таком коде
можно сделать рерайт переменных, входящих в пёрл из CGI, пёрлом до того, как их
прочитает mvc-роутер.

Манкипатчинг, ю ноу.

пользователям  с их апачами отдать разные "пускачи" веб-приложения.

73! Peter pgp: A0E26627 (4A42 6841 2871 5EA7 52AB  12F8 0CE1 4AAC A0E2 6627)
--
http://vereshagin.org


Подробная информация о списке рассылки Moscow-pm