risingstack.com/node-hero-node-js-project-structure-tutorial/...大多数Node.js框架不提供固定的目录结构,从一开始就把它做好一个挑战。在本教程中,学习如何正确构建Node.js项目以避免在应用程序开始增长时出现混乱。Node.js项目结构的五个基本规则组织Node.js项目的方法有很多种——每种已知的方法都有其优点和缺点。然而,根据我们的经验,开发人员总是想要同样的东西:干净的代码,以及轻松添加新功能的可能性。过去在RisingStack,我们有机会创建各种规模的高效Node应用程序,并深入了解项目结构注意事项。我们提出了在Node.js开发过程中遵循的五个简单指导原则。如果您设法遵循它们,您的项目将会更好:规则1-围绕功能组织文件,而不是角色假设目录结构如下://DON'T.├──controllers|├──产品。js|└──user.js├──模型|├──product.js|└──user.js├──views|├──product.hbs|└──user.hbs这种方法的问题是:要了解产品页面的工作原理,你必须打开三个不同的目录,这需要大量的上下文切换。当需要模块时,您必须编写长路径:require('../../controllers/user.js')相反,您可以围绕产品功能/页面/组件组织Node.js应用程序结构。这样比较好理解://DO.├──product|├──index.js|├──product.js|└──product.hbs├──用户|├──index.js|├──user.js|└──user.hbs规则2-不要将逻辑放在index.js文件中只使用这些index.js文件输出函数,eg://product/index.jsvarproduct=require('./product')module.exports={create:product.create}规则3-测试文件并排放置测试)。因此,如果将测试文件放在实现文件旁边,会更容易理解。将其他测试文件放在单独的测试文件夹中以避免冲突。.├──测试|└──setup.spec.js├──产品|├──index.js|├──product.js|├──product.spec.js|└──product.hbs├──用户|├──index.js|├──用户.js|├──user.spec.js|└──user.hbs规则4-使用config目录使用config目录放置配置文件。.├──配置|├──index.js|└──server.js├──产品|├──index.js|├──product.js|├──product.spec.js|└──product.hbs规则5-将长npm脚本放在scripts目录中在package.json中为额外的长脚本创建一个单独的目录。.├──剧本|├──syncDb.sh|└──provision.sh├──product|├──index.js|├──product.js|├──product.spec.js|└──product.hbs在下一章中,我们将学习如何使用Passport.js对用户进行身份验证。
