大型 Node.js 项目中文件和文件夹的命名约定是什么?
我应该大写、驼峰式还是下划线?
IE。这被认为是有效的吗?
project-name app controllers someThings.js users.js models someThing.js user.js views some-things index.jade users logIn.jade signUp.jade ...
在使用节点几年后,我可以说目录/文件结构 没有 约定。然而,大多数(专业)快速应用程序使用如下设置:
/ /bin - scripts, helpers, binaries /lib - your application /config - your configuration /public - your public files /test - your tests
使用此设置的一个示例是nodejs-starter。
我个人将此设置更改为:
/ /etc - contains configuration /app - front-end javascript files /config - loads config /models - loads models /bin - helper scripts /lib - back-end express files /config - loads config to app.settings /models - loads mongoose models /routes - sets up app.get('..')... /srv - contains public files /usr - contains templates /test - contains test files
在我看来,后者与 Unix 风格的目录结构更匹配(而前者混合了一点)。
我也喜欢这种模式来分隔文件:
lib/index.js
var http = require('http'); var express = require('express'); var app = express(); app.server = http.createServer(app); require('./config')(app); require('./models')(app); require('./routes')(app); app.server.listen(app.settings.port); module.exports = app;
lib/静态/index.js
var express = require('express'); module.exports = function(app) { app.use(express.static(app.settings.static.path)); };
这允许巧妙地解耦所有源代码,而不必担心依赖关系。对抗讨厌的 Javascript 的一个非常好的解决方案。附近有一个使用此设置的真实示例。
更新(文件名):
关于文件名,最常见的是 短 的、 小写 的文件名。如果您的文件只能用两个词来描述,那么大多数 JavaScript 项目都使用下划线作为分隔符。
更新(变量):
关于变量,同样的“规则”适用于文件名。然而,原型或类应该使用 camelCase 。
更新(风格指南):