Sau một số năm sử dụng nút, tôi có thể nói rằng không có quy ước nào cho cấu trúc thư mục / tệp. Tuy nhiên, hầu hết các ứng dụng express (chuyên nghiệp) sử dụng thiết lập như:
/
/bin - scripts, helpers, binaries
/lib - your application
/config - your configuration
/public - your public files
/test - your tests
Một ví dụ sử dụng thiết lập này là nodejs-starter .
Cá nhân tôi đã thay đổi thiết lập này thành:
/
/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
Theo ý kiến của tôi, cái sau phù hợp hơn với cấu trúc thư mục kiểu Unix (trong khi cái trước kết hợp điều này một chút).
Tôi cũng thích mẫu này để tách các tệp:
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 / static / index.js
var express = require('express');
module.exports = function(app) {
app.use(express.static(app.settings.static.path));
};
Điều này cho phép phân tách gọn gàng tất cả mã nguồn mà không phải bận tâm đến các phần phụ thuộc. Một giải pháp thực sự tốt để chống lại Javascript khó chịu. Một ví dụ trong thế giới thực ở gần đây đó sử dụng thiết lập này.
Cập nhật (tên tệp):
Về tên tệp, thông thường nhất là viết thường , ngắn tên tệp . Nếu tệp của bạn chỉ có thể được mô tả bằng hai từ, hầu hết các dự án JavaScript sử dụng dấu gạch dưới làm dấu phân cách.
Cập nhật (biến):
Về các biến, các "quy tắc" tương tự cũng được áp dụng như đối với tên tệp. Tuy nhiên, các nguyên mẫu hoặc lớp nên sử dụng camelCase .
Cập nhật (styleguides):