Работа с Node.JS

Прошлой ночью я сделал дамп 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();

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

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

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

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

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

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

1 ответ

Решение

Взгляните на http://dailyjs.com/2010/11/01/node-tutorial/, это довольно актуально.

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

Другие вопросы по тегам