Rob*_*itt 8 structure application-design node.js
昨晚我转储Windows 7并将我的硬盘驱动器格式化为基于Linux的操作系统,纯粹是因为我想开始使用Node.JS
所以我已经安装了Node.JS并做了一些测试工作,http服务器和套接字等.
我想要做的是构建一个与MVC框架紧密集成的HTTP服务器,但在开始之前我需要学习如何在Node中高效构建.
例如在PHP中作为我的框架,我将创建一个引导加载系统来加载所有基类等,然后我会激活我的事件系统准备开始附加回调.
我将继续处理请求等,直到生成输出,然后将其发送到将处理标头等的输出处理程序
但Node是一个全新的环境,我想知道在Node中构建系统的最佳实践.
我正在寻找的信息更多的是与设计结构有关,而不是应用程序的实际编码,如何加载lib加载库的位置等等
任何帮助表示赞赏.
到目前为止,我的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
Run Code Online (Sandbox Code Playgroud)
这个目录结构就像大多数基于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();
Run Code Online (Sandbox Code Playgroud)
init文件是主要工作,它告诉系统的所有其他区域运行,停止等.
我在libs中有一个文件被调用serverhandler.js,,这在init.js中是必需的,然后我创建一个服务器并将回调分配给ServerHandler.Listener.然后谁监听请求,检查文件是否存在于公共目录中,如果是,则读取块并发回.
如果在公共场所没有找到文件,那么它将创建一个Route.Create("/ path?params")的路由; 从uri中阻止3个元素,Controller,Method,Params,然后加载控制器文件(如果存在).
我采取了抛出错误页面的方法:
if(!FileSystem.exists(RequiredPath))
{
throw new HTTPExceptions.FileNotFound();
}
Run Code Online (Sandbox Code Playgroud)
希望这有助于一些人开始使用Node.
看看 http://dailyjs.com/2010/11/01/node-tutorial/ ,它非常相关。
我建议也查看当前模块 https://github.com/joyent/node/wiki/modules 并阅读您感兴趣的领域中的任何项目的代码,尤其是。中间件、路由和模块加载器。
| 归档时间: |
|
| 查看次数: |
3752 次 |
| 最近记录: |