当前位置: 首页 > 面试题库 >

Node.js项目的文件夹结构

端木飞
2023-03-14
问题内容

我注意到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-
Framework(例如express或mongoose)时):

  • /models 包含您所有的ORM模型(Schemas以猫鼬称呼)
  • /views 包含您的视图模板(使用express中支持的任何模板语言)
  • /public 包含所有静态内容(图像,样式表,客户端JavaScript)
    • /assets/images 包含图像文件
    • /assets/pdf 包含静态pdf文件
    • /css 包含样式表(或CSS引擎编译的输出)
    • /js 包含客户端JavaScript
  • /controllers 包含所有快递路线,按应用程序的模块/区域分隔(注意:使用express的引导功能时,此文件夹称为 /routes

我习惯了以这种方式组织项目,我认为效果很好。

基于CoffeeScript的Express应用程序的更新(使用 connect-
assets
):

  • /app 包含您已编译的JavaScript
  • /assets/ 包含所有需要编译的客户端资产
    • /assets/js 包含您的客户端CoffeeScript文件
    • /assets/css 包含您所有的LESS / Stylus样式表
  • /public/(js|css|img) 包含没有任何编译器处理的静态文件
  • /src 包含所有服务器端特定的CoffeeScript文件
  • /test 包含所有单元测试脚本(使用您选择的测试框架来实现)
  • /views 包含您所有的表达意见(无论是jade,ejs还是任何其他模板引擎)


 类似资料:
  • 我们看一下全局的文件结构: ▸ build/ // 编译用到的脚本 ▸ config/ // 各种配置 ▸ dist/ // 打包后的文件夹 ▸ node_modules/ // node第三方包 ▸ src/ // 源代码 ▸ static/

  • 问题内容: 大型Node.js项目中文件和文件夹的命名约定是什么? 我应该大写,驼峰式还是下划线? 就是 这被认为有效吗? 问题答案: 在使用node几年之后,我可以说目录/文件结构 没有 约定。但是,大多数(专业)快递应用程序都使用类似以下的设置: 使用此设置的示例是nodejs-starter。 我个人将此设置更改为: 在我看来,后者与Unix风格的目录结构更好地匹配(而前者将其混为一谈)。

  • 问题内容: IntelliJ IDEA中Java项目可接受的文件夹结构是什么? 多个来源建议采用以下结构: 我知道这以前曾经奏效,但现在却在抱怨 显然],不允许将其作为程序包名称。我不明白为什么有时可以接受,有时不能接受。有人可以在IntelliJ IDEA中的Java项目中提供可接受的项目文件夹结构的完整示例吗? 问题答案: 这是Maven项目的基本文件夹结构。IntelliJ通常会识别出此情况

  • 我知道这种方法以前起过作用,但现在它正在抱怨 显然,不允许作为包名。我不明白为什么有时可以接受,有时不能接受。有人能在IntelliJ IDEA中提供一个Java项目中可接受的项目文件夹结构的完整示例吗?

  • 问题内容: 我想使用“文件类”从项目文件夹中获取文件,我该怎么办? 问题答案: 嗯,有很多不同的方法来获取Java文件,但这是一般要点。 不要忘记,您至少需要将其包装在a 中,因为File是其中的一部分,这意味着它必须具有try-catch块。 不是要解决Ericson的问题,而是如果您使用的是实际的软件包,则除非明确使用文件的位置,否则文件的位置将有问题。相对路径与Packages混为一谈。 即

  • 我已经用selenium和TestNG创建了maven项目。当我使用pom文件运行项目时,它不会生成TestNG结果(test-output文件夹)。但是当我以TestNG.xml->(右键单击)run as->TestNG套件的形式运行项目时,它会生成以下结果