Skip to content

Commit

Permalink
update examples
Browse files Browse the repository at this point in the history
  • Loading branch information
9il committed Apr 24, 2015
1 parent cbd0d1c commit 660e582
Show file tree
Hide file tree
Showing 4 changed files with 85 additions and 8 deletions.
2 changes: 2 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
docs/build

*.dub

*.sublime-workspace
Expand Down
87 changes: 81 additions & 6 deletions docs/source/examples.rst
Original file line number Diff line number Diff line change
Expand Up @@ -98,18 +98,73 @@ Web application это довольно хороший пример для по
и заклюяается она в том, что им необходимо быстро интегрировать
программы написанные на D с другими сервисами, языками программирования и базами данных.

В качестве основы для данного примера взята статья
"Сreating a simple restful web app with node.js, Express, and MongoDB"
By Christopher Buecheler.

.. В качестве is a D pacakge for easily building fast, productive network applications.
.. Далее представлена краткая инструкция
Initialization
^^^^^^^^^^^^^^^

Для создания скелета веб приложения запустите

.. code-block:: shell
$ dub vibed-mongo vibe.d
Эта команда создаст minimal HTTP server based on vibe.d в папке ``vibed-mongo``.

Конфигурационный файл ``dub.json`` будет выглядеть примерно следующим образом

.. literalinclude:: ../../examples/vibed-mongo/dub.json
:language: json
:tab-width: 4
:name: dub.json
:caption: dub.json

.. literalinclude:: ../../examples/vibed-mongo/source/service.d
:language: d
:tab-width: 4
Версия ``"VibeDefaultMain"`` включает в проект функцию ``main`` определенную
по умолчанию.

.. literalinclude:: ../../examples/vibed-mongo/source/app.d
:language: d
:tab-width: 4
Структура файлов ``vibed-mongo`` имеет следующую структуру:


После установки MongoDB запустите его

.. code-block:: shell
$ mongod
В другой консоле выполнете

.. code-block:: shell
$ mongod
> use vibed
switched to db vibed
> db.createCollection("userlist", {autoIndexID : true})
{ "ok" : 1 }
> db.userlist.insert({
'username' : 'test1',
'email' : 'test1@test.com',
'fullname' : 'Bob Smith',
'age' : 27,
'location' : 'San Francisco',
'gender' : 'male'
})
WriteResult({ "nInserted" : 1 })
> exit
bye
Команда создаст базу данных ``vibed`` с коллекций ``userlist``,
в которой будет одна запись.
Patches
^^^^^^^^^
В сравнении с исходной статьей незначительно был измененен `global.js`:
.. literalinclude:: ../../examples/vibed-mongo/public/javascripts/global.js
:language: js
Expand All @@ -122,3 +177,23 @@ Web application это довольно хороший пример для по
:tab-width: 4
:lines: 129-138
:lineno-start: 129
Service
^^^^^^^^^^^^^
vibe.d является хорошим примером использования декларативного программирования на (with?) D.
Сервис реализует добавление в базу и удаление из базы записей о пользователях.
.. literalinclude:: ../../examples/vibed-mongo/source/service.d
:language: d
:tab-width: 4
App
^^^^^^^^^^^^^
Осталось подключить MongoDB, инициализировать сервер и обработчик ошибок.
.. literalinclude:: ../../examples/vibed-mongo/source/app.d
:language: d
:tab-width: 4
2 changes: 1 addition & 1 deletion examples/vibed-mongo/source/app.d
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ import service;

shared static this()
{
immutable string title = "Express";
immutable string title = "vibe.d web app";

logInfo("Connecting to DB...");
auto db = connectMongoDB("localhost").getDatabase("vibed");
Expand Down
2 changes: 1 addition & 1 deletion examples/vibed-mongo/views/layout.dt
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
doctype html
html
head
title= title ~ "(it is D expression)"
title= title
link(rel='stylesheet', href='/styles/style.css')
body
block content
Expand Down

0 comments on commit 660e582

Please sign in to comment.