在使用节点几年后,我可以说目录/文件结构没有约定。然而,大多数(专业)快速应用程序使用如下设置:
/
/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。
更新(风格指南):