继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续
感谢您的支持,我会继续努力的
赞赏金额会直接到老师账户
将二维码发送给自己后长按识别
微信支付
支付宝支付

Node Hero 系列之:Node.js 项目文件组织教程

慕姐8265434
关注TA
已关注
手记 1309
粉丝 222
获赞 1065

Node.js 项目结构的五个基本原则

Node.js 项目有很多种组织方式,每种方式各有优缺点。但是,根据我们的经验,开发者想要的结果都是一样的:代码简洁,能轻松添加新功能。

在 RisingStack 的过去几年里,我们有机会构建了各种规模的高效 Node 应用,在项目组织的最佳实践方面我们获得了很多见解。

我们总结了五个简单的指导原则,在Node.js 开发过程中我们都在实施这些原则。如果你设法遵守这些原则,你的项目基本无虞:

原则 1:根据功能而不是角色组织文件

假设你的目录结构如下:

// 不推荐.
├── controllers
|   ├── product.js
|   └── user.js
├── models
|   ├── product.js
|   └── user.js
├── views
|   ├── product.hbs
|   └── user.hbs

这种方式的问题是:

  • 为了理解其中的产品页面如何工作,你不得不打开三个不同的目录,来回切换。

  • 引入模块时你要写很长的路径: require('../../controllers/user.js')

相反,你可以根据产品功能、页面、组件来组织结构。这样理解起来更容易:

// 推荐.
├── product
|   ├── index.js
|   ├── product.js
|   └── product.hbs
├── user
|   ├── index.js
|   ├── user.js
|   └── user.hbs

原则 2:不要把逻辑放在index.js 文件中

这些文件只用来导出函数,比如:

// product/index.jsvar product = require('./product')module.exports = {  create: product.create
}

原则 3:把测试文件放在紧靠功能实现代码的位置

测试代码不只是为了检查模块输出是否符合预期,还能充当模块文档*(接下来的章节你会学到更多有关测试的内容)。因此,如果测试文件紧挨着功能实现代码,理解起来更容易。

把额外的测试文件放到单独的test文件夹中,以免混乱。

.
├── test|   └── setup.spec.js
├── product
|   ├── index.js|   ├── product.js
|   ├── product.spec.js|   └── product.hbs
├── user
|   ├── index.js|   ├── user.js
|   ├── user.spec.js|   └── user.hbs

原则 4:使用config目录

config目录存放配置文件。

.
├── config|   ├── index.js
|   └── server.js
├── product|   ├── index.js
|   ├── product.js|   ├── product.spec.js
|   └── product.hbs

原则 5:把大段的 npm 脚本放到 scripts目录里

为 package.json 文件中的额外长脚本创建一个单独的目录。

.
├── scripts|   ├── syncDb.sh
|   └── provision.sh
├── product|   ├── index.js
|   ├── product.js|   ├── product.spec.js
|   └── product.hbs



作者:空引
链接:https://www.jianshu.com/p/ce71ffc97a80


打开App,阅读手记
0人推荐
发表评论
随时随地看视频慕课网APP