Прошлой ночью я выгрузил 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.