我注意到Node.js项目经常包含这些文件夹:
/libs, /vendor, /support, /spec, /tests
它们具体是什么意思呢?它们之间有什么不同,以及我应该把引用的代码放在哪里?
我注意到Node.js项目经常包含这些文件夹:
/libs, /vendor, /support, /spec, /tests
它们具体是什么意思呢?它们之间有什么不同,以及我应该把引用的代码放在哪里?
关于您提到的文件夹:
/libs
通常用于自定义的 classes/functions/modules
/vendor
或 /support
包含第三方库(在使用git作为源代码控制系统时,作为git子模块添加)/spec
包含BDD测试规范。/tests
包含应用程序的单元测试(使用测试框架,请参见这里)注意:自NPM引入干净的包管理以来,/vendor
和 /support
都已被弃用。建议使用NPM和package.json文件处理所有第三方依赖项
在构建相当大的应用程序时,特别是如果您使用一些MVC / ORM框架(如express或mongoose)时,我建议使用以下附加文件夹:
/models
包含所有ORM模型(在mongoose中称为Schemas
)/views
包含您的视图模板(使用express支持的任何模板语言)/public
包含所有静态内容(图像、样式表、客户端JavaScript)
/assets/images
包含图像文件/assets/pdf
包含静态PDF文件/css
包含样式表(或由CSS引擎编译的输出)/js
包含客户端JavaScript/controllers
包含了所有应用的模块/区域的 express 路由(注意:当使用 express 的引导功能时,此文件夹名为 /routes
)我习惯以这种方式组织我的项目,而且我认为它非常有效。
针对使用 connect-assets 的基于 CoffeeScript 的 Express 应用程序的更新:
/app
包含你编译后的 JavaScript 代码/assets/
包含了需要编译的所有客户端资源
/assets/js
包含你的客户端 CoffeeScript 文件/assets/css
包含了所有 LESS/Stylus 样式表/public/(js|css|img)
包含了所有静态文件,不受任何编译器处理/src
包含了所有服务端特定的 CoffeeScript 文件/test
包含了所有单元测试脚本(使用你选择的测试框架实现)/views
包含了所有 express 视图(无论是 jade、ejs 还是其他任何模板引擎)有一个类似于这个问题的讨论在GitHub上: https://gist.github.com/1398757
你可以查找其他项目以作为指导,在GitHub中搜索以下内容:
最后,在书籍中(http://shop.oreilly.com/product/0636920025344.do)建议使用以下结构:
├── index.html
├── js/
│ ├── main.js
│ ├── models/
│ ├── views/
│ ├── collections/
│ ├── templates/
│ └── libs/
│ ├── backbone/
│ ├── underscore/
│ └── ...
├── css/
└── ...
你可以在我的项目架构中看到更多的示例,链接在此处:
├── Dockerfile
├── README.md
├── config
│ └── production.json
├── package.json
├── schema
│ ├── create-db.sh
│ ├── db.sql
├── scripts
│ └── deploy-production.sh
├── src
│ ├── app -> Containes API routes
│ ├── db -> DB Models (ORM)
│ └── server.js -> the Server initlializer.
└── test
基本上,逻辑应用程序被分离到SRC目录下的DB和APP文件夹中。
src
下还是前端应用程序会有自己的文件夹(带有自己的package.json
和类似的文件夹结构)? - wal假设我们正在讨论Web应用程序和构建API:
其中一种方法是通过功能将文件进行分类。 举个例子:
我们正在开发一个图书馆应用程序。 在应用程序的第一个版本中,用户可以:
在第二个版本中,用户还可以:
在第三个版本中,用户还可以:
首先,我们有以下结构:
books
└─ entities
│ └─ book.js
│ └─ author.js
│
└─ services
│ └─ booksService.js
│ └─ authorsService.js
│
└─ repositories
│ └─ booksRepository.js
│ └─ authorsRepository.js
│
└─ controllers
│ └─ booksController.js
│ └─ authorsController.js
│
└─ tests
└─ ...
user
└─ controllers
└─ entities
└─ services
└─ ...
loan
└─ controllers
└─ ...
接下来是收藏夹功能:
favorites
└─ controllers
└─ entities
└─ ...
当新开发人员接手将图书搜索功能添加到收藏夹,以便返回标记为收藏的书籍信息时,很容易看到他/她应该查找代码的位置。
然后当产品所有者进入并宣布应该完全删除收藏功能时,很容易将其删除。
books.repository.js
命名方案。 - zr0gravity7只需从GitHub克隆存储库即可
https://github.com/abhinavkallungal/Express-Folder-Structure
这是一个 node.js express.js 项目的基本结构,已经设置了 MongoDB 作为数据库,hbs 作为视图引擎,还有 nodemon,因此您可以轻松地设置 node js express 项目。
步骤1:下载或克隆存储库
步骤2:在任何代码编辑器中打开
步骤3:在文件夹路径上打开终端
步骤4:在终端中运行以下命令:npm start
步骤5:开始编码