昨晚我转储了 Windows 7 并格式化了我的硬盘驱动程序以移植到基于 Linux 的操作系统,纯粹是因为我想开始使用Node.JS
所以我已经安装了Node.JS并做了一些测试,http 服务器和套接字等。
我想做的是构建一个与 MVC 框架紧密集成的 HTTP 服务器,但在开始之前,我需要学习如何在 Node.js 中高效构建。
例如,在 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 的 Web 应用程序一样,所以使用这种方法我感觉很舒服。
启动文件是节点作为入口点执行的文件,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();
init 文件是主要工作,它告诉系统的所有其他区域运行、停止等。
我在库中有一个名为serverhandler.js,
这是 init.js 所必需的,然后我创建一个服务器并将回调分配给ServerHandler.Listener
。然后监听请求,检查该文件是否存在于公共目录中,如果存在,则分块读取并发送回。
如果在公共场合没有找到文件,它将使用 Route.Create("/path?params"); 创建一条路由。它阻止 uri 中的 3 个元素:控制器、方法、参数,然后加载控制器文件(如果存在)。
我采取了抛出错误页面的方法,如下所示:
if(!FileSystem.exists(RequiredPath))
{
throw new HTTPExceptions.FileNotFound();
}
希望这可以帮助一些人开始使用 Node.js。