Tôi đang bắt đầu một dự án mới dưới M * EAN Stack (MySQL) và đang băn khoăn về cách cấu trúc nó, tôi sẽ sử dụng John Papa's Style Guide cho dự án Angular, khá mát mẻ mặc dù, đặc biệt cho các nguyên tắc LIFT.Cấu trúc thư mục cho dự án Express.js và Angular.js
Điều gì gây rắc rối là Express, nó có cấu trúc MVC riêng, nó có thể xử lý các tuyến, mô hình, dạng xem, v.v ... nhưng tôi muốn xử lý bằng Angular, tôi muốn Express như một RESTful API.
Một cấu trúc thư mục mà tôi đã suy nghĩ để sử dụng là:
├── node_modules
├── app
│ ├── client
│ │ ├── app.module.js
│ │ ├── app.config.js
│ │ ├── users
| │ │ ├── users.module.js
| │ │ ├── users.config.js
| | | ├── admins.view.html
| | | ├── admins.controller.js
| | | ├── registered.view.html
| | | ├── registered.controller.js
| | | ├── guests.view.html
| | | ├── guests.controller.js
| | | ├── profile.directive.html
| | | ├── profile.controller.js
| | │ └── users.routes.js
│ │ ├── questions
| │ │ ├── questions.module.js
| │ │ ├── questions.config.js
| | | ├── list.view.html
| | | ├── list.controller.js
| | | ├── ask.view.html
| | | ├── ask.controller.js
| | | ├── detail.view.html
| | | ├── detail.controller.js
| | │ └── questions.routes.js
│ │ └──
│ ├── server
│ | └── ?
│ └── libs
| ├── angular
| ├── bootstrap
│ └── jquery
|
|
└── server.js
Nhưng thực sự tôi khá chắc chắn nếu làm việc với nó như vậy, tôi thực sự cần một cấu trúc mở rộng, ứng dụng là khá laaarge ! Một số câu hỏi của tôi là:
- Điều gì xảy ra nếu tôi muốn chia cấu hình máy chủ Node (Express) để có thể mở rộng? Điều gì sẽ là một cấu trúc thư mục thích hợp cho điều đó?
- Thư mục máy khách và máy chủ có ý nghĩa gì trong một ứng dụng (tôi lấy chúng từ một số cấu trúc mà tôi thấy cho Express)?
- Nếu tôi sử dụng Angular, Express là gì?
LƯU Ý: Tôi chưa bao gồm thư mục và tệp cho bower, gulp, grunt hoặc những thứ như vậy, tôi muốn giữ nó càng sạch càng tốt, tôi biết chúng đơn giản hóa rất nhiều thứ, nhưng tôi không 't muốn sử dụng chúng ngay bây giờ, tất nhiên, nếu ai đó có một lý lẽ tuyệt vời để sử dụng chúng, xin vui lòng cho tôi biết.
Ngay cả khi bạn sử dụng Góc với Nút, bạn phải sử dụng Express AFAIK vì nó được tích hợp vào Nút làm khung web để hiển thị các điểm cuối API. Nó giống như Angular có thể thực hiện rất nhiều định tuyến, nhưng sau đó mọi thứ thực sự được chuyển giao cho Express để xử lý phần phụ trợ cho Node. Ngoài ra, bạn sẽ rất có thể muốn làm theo một mô hình có thể mở rộng góc tốt như trái ngược với lo lắng về khả năng mở rộng Node và Express –
đó là lý do tại sao tôi đang sử dụng John Papas hướng dẫn, Express định tuyến không có bất cứ điều gì để làm với định tuyến góc? @TomStickel –
@feniixx, sẽ rất tuyệt nếu bạn có thể cung cấp bản cập nhật của câu hỏi này với cấu trúc thư mục bạn quyết định đi cùng? Tôi thấy tổ chức góc cạnh của bạn và nó có ý nghĩa. Nhưng những gì về phía nút/express? bạn đã tổ chức mã của mình ở đó như thế nào? – commonSenseCode