Работа с Node.JS - PullRequest
       27

Работа с Node.JS

8 голосов
/ 03 марта 2011

Прошлой ночью я выгрузил Windows 7 и отформатировал свой жесткий драйвер для переноса на операционную систему на основе Linux. Чисто по тем причинам, по которым я хотел начать работать с Node.JS

Я установил Node.JS и выполнил несколько тестовых заданий, http-сервер, сокеты и т. Д.

Я хотел бы создать HTTP-сервер, тесно интегрированный сMVC Framework, но прежде чем я начну все, что мне нужно, чтобы научиться эффективно строить в Node.

Например, в рамках PHP в качестве моей структуры я бы создал систему загрузки для загрузки всех базовых классов и т. Д., Затем ябудет запускать мою систему событий, готовую начать присоединять обратные вызовы.

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

Но Node - это совершенно новая среда для этого, и я думаю о лучших методах построения системы в Node.

ИнформацияИщите, что я ищу, больше связано со структурой проекта, а не с фактическим кодированием приложения, как загрузить библиотеку, куда загрузить библиотеки и т. д. и т. д.

Любая помощь приветствуется.


Пока что у меня неплохо работает WebApplication, я построил свое приложение довольно традиционно и немного процедурно.

То, что я начал, - это создание структуры каталогов следующим образом:

<root>
    startup.js
    /public/
        favicon.ico
        /images/
        /stylesheets/
        /javascripts/
    /system/
        init.js
        config.js
        /libs/
            /exceptions/
                http.js
                server.js
    /application/
        /views/
            /_override/
                /errors/
                    generic.view
            /partials/
                sidebar.voew
            index.view
        /controllers/
             index.js
        /models/
            users.js

Эта структура каталогов похожа на большинство веб-приложений на основе MVC, поэтому я чувствую себя комфортно при использовании этого метода.

Файл запуска - это то, что выполняется узлом в качестве точки входа, node startup & и выглядит так:

/*
    * Header of t he file, Copyright etc
*/

var _Intitialize = require("./system/init.js");

//Displays the command line header, title, copyright etc
_Intitialize.DisplayCommandLineHeader();

//Check the enviroment, Permissions, Ports etc
_Intitialize.CheckEnviroment();

//Start the server and listen the port.
_Initialize.StartServer();

основной файл - это файл инициализации, который сообщает всем остальным системным системам о запуске, остановке и т. Д.

У меня есть файл в libs, который называется serverhandler.js,, и этотребуется в init.js, затем я создаю сервер и назначаю обратный вызов для ServerHandler.Listener.Затем он прослушивает запросы, проверяет, существует ли файл в общедоступном каталоге, и в таком случае он считывает фрагменты и отправляет обратно.

, если файл не был найден в общедоступном каталоге, он создает маршрут с помощью Route.Создать ( "/ путь PARAMS?");который удерживает 3 элемента: Controller, Method, Params из uri, а затем загружаются файлы контроллера, если они существуют.

Я выбрал метод вывода страниц с ошибками, например:

if(!FileSystem.exists(RequiredPath))
{
     throw new HTTPExceptions.FileNotFound();
}

Надеюсь, это поможет некоторым людям начать работу в Node.

1 Ответ

4 голосов
/ 03 марта 2011

Посмотрите на http://dailyjs.com/2010/11/01/node-tutorial/, это довольно актуально.

Я бы посоветовал посмотреть и на текущие модули https://github.com/joyent/node/wiki/modules и чтение кода любого из проектов в областях, которые вас интересуют, особенно промежуточное ПО, загрузчики маршрутизации и модулей.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...