我注意到了那个节点.js项目通常包括以下文件夹:

/libs、/vendor、/support、/spec、/tests

这到底是什么意思?它们之间有什么不同,我应该在哪里包含引用的代码?

推荐答案

关于你提到的文件夹:

  • 100通常用于定制classes/functions/modules
  • 100101包含第三方库(添加为git
  • 100包含BDD测试的规范.
  • 101包含应用程序的单元测试(使用测试

NOTE: both 100 and 101 are deprecated since NPM introduced a clean package management. It's recommended to handle all 3rd-party dependencies using NPM and a package.json file

在构建一个相当大的应用程序时,我推荐以下额外的文件夹(尤其是如果您使用某种MVC-/ORM框架,比如expressmongoose):

  • (你的100型mongoose 包含所有mongoose )
  • 100包含视图模板(使用express支持的任何模板语言)
  • /public contains all static content (images, style-sheets, client-side JavaScript)
    • 100包含图像文件
    • 100包含静态pdf文件
    • 100包含样式表(或css引擎编译的输出)
    • 100包含客户端JavaScript
  • 100包含所有的express routes,由应用程序的模块/区域分隔(注意:使用express的 bootstrap 功能时,此文件夹称为101)

我习惯了用这种方式组织我的项目,我觉得效果很好.

Update for CoffeeScript-based Express applications (using 100):

  • 100包含编译后的JavaScript
  • /assets/ contains all client-side assets that require compilation
    • 100包含客户端咖啡脚本文件
    • 100包含所有LESS/Stylus样式表
  • 100包含任何编译器都无法处理的静态文件
  • 100包含所有服务器端特定的CoffeeScript文件
  • 100包含所有单元测试脚本(使用您选择的测试框架实现)
  • 100包含所有express视图(无论是jade、ejs还是任何其他模板引擎)

Node.js相关问答推荐

如何为一个网站实现这 2 个网址.即 www.administrator.sitename.com 和 www.sitename.com?

为什么需要在 NodeJS 应用程序中创建服务器?

cURL 和 shell 任务

users.watch(在 gmail google api 中)如何收听通知?

如何使动态私有IP地址静态?

使用中的端口代码:'EADDRINUSE',即使在 kill 命令之后

无法更新MongoDB中的文档:";伯森场';writeConcern.w';是错误的类型';数组'&引用;

当我们有“esnext”时,为什么我们需要“nodenext” typescript 编译器选项?

错误消息“错误:0308010C:数字信封例程::不支持”

ChunkLoadError:加载块 node_modules_next_dist_client_dev_noop_js 失败

Electron 5.0.0“未捕获的 ReferenceError:未定义要求”

有什么方法可以修复 package-lock.json lockfileVersion 以便 npm 使用特定格式?

发生未处理的异常:作业(job)名称“..getProjectMetadata”不存在

如何在 Electron 中正确使用 preload.js

如何向 .env 文件添加注释?

错误消息:MongoError: bad auth Authentication failed through URI string

mac 中缺少对 /usr/local/lib/node_modules 的写访问权限

续集“findbyid”不是一个函数,但显然“findAll”是

如何在MERN中组织后端和前端的文件结构

ESLint - 未定义“进程”