初学node.js,暂且先从Express来入手,下面是我以Rails程序员的角度,用Rails项目为参照,对最基本的Express项目结构进行对比,做下学习笔记。
典型的Express项目目录结构如下(图一):
1、node_modules目录:
保存node.js的module(模组)的地方,类似于Rails项目中的vendor目录,node.js中的module概念类似于ruby中的gem包,通过安装不同的module,项目可以获取到相关的功能扩展,如模板、数据库接口等。这个目录下面安装的module与项目根目录下的package.json文件有莫大关系。package.json文件类似于rails项目中的Gemfile,指定了项目中依赖的扩展module和相应版本信息。实例见下(图二):
图中中安装了ejs(选择ejs模板时的默认安装)、express(默认安装)和node-mysql三个module;
2、public目录:
这个public目录等于rails项目中的public+assets,分别存放了客户端可以访问的资源,如网页图片、css和前端javascript脚本等资源。
3、routes目录:
express中的routes目录并非和Rails项目中的config/routes.rb文件概念一致,倒是和Rails项目中app/controllers/目录类似,存放了用于处理MVC概念中controller的处理部分,也就是存放对应路由的处理程序。路由信息在app.js中予以定义,见下面(图三):
如图一中有两个路由处理,index和user。
4、views目录:
这个目录的概念与Rails项目中的views完全相同,其中的index.ejs存放的就是路由index.js的模板。
5、app.js文件:
这个文件是Express应用程序的入口文件,存放的Express项目中最基本的配置信息。
6、其他:由于Express只是一个轻量级的Web框架,多数功能只是围绕HTTP协议中常用部分进行了封装,其中没有内置ORM,所以没有MVC概念中Model的部分,在实际项目中必须通过module来进行扩展。
阅读(3437) | 评论(0) | 转发(0) |