使用Node.JS

昨天晚上我转储Windows 7和格式化我的硬盘驱动器端口到基于Linux的操作系统,纯粹是因为我想开始使用Node.JS

所以我已经安装Node.JS ,并做了一些testing的东西,http服务器和套接字等

我想要做的是构build一个与MVC框架紧密集成的HTTP服务器,但在开始之前,我需要学习如何在Node中高效地构build。

例如,在PHP作为我的框架,我会创build一个启动加载系统来加载所有的基类等,然后我会启动我的事件系统准备开始附加callback。

我会继续处理请求等,直到生成输出,然后发送到输出处理程序,将处理标头等

但是Node为这个全新的环境,而且我想知道在Node中构build一个系统的最佳实践。

我正在寻找的信息更多的是与devise结构有关,而不是实际的应用程序编码,如何加载lib库在哪里加载库等等

任何帮助表示赞赏。


到目前为止,我的Web应用程序正在顺利进行,我已经build立了我的应用程序相当传统和一点程序。

我已经开始创build一个目录结构,如下所示:

<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,库中的文件serverhandler.js,这是init.js所需的,然后创build一个服务器,并将callback分配给ServerHandler.Listener 。 然后谁监听请求,检查文件是否存在于公共目录中,如果存在,则读取块并发送回去。

如果没有文件被公开发现,它会创build一个Route.Create(“/ path?params”)路由; 从uri中阻止3个元素Controller,Method,Params,然后控制器文件被加载(如果存在的话)。

我采取了像这样抛出错误页面的方法:

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

希望这可以帮助一些人开始使用Node。

看看http://dailyjs.com/2010/11/01/node-tutorial/ ,它非常相关。

我build议你也看看目前的模块https://github.com/joyent/node/wiki/modules ,阅读你感兴趣的领域的任何项目的代码, 中间件,路由和模块加载器。