2015-08-22 25 views
5

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.

+0

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 –

+0

đó 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 –

+0

@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

Trả lời

2

Tôi cấu trúc các ứng dụng tốc hành của mình như được mô tả trong Express Code Structure. Tôi nghĩ rằng nhóm bạn có dưới app/client có vẻ tốt và bạn có thể chỉ phản ánh rằng đối với phần bên máy chủ tốc độ cao của ứng dụng của bạn.

+0

hmmm, không chắc chắn rằng repo mô tả cấu trúc của một ứng dụng trung bình, nhưng những gì tôi muốn biết là những tập tin thể hiện và thư mục cần thiết khi làm việc với góc ... –

+1

Nó mô tả một thể hiện/nút ("E" và Cấu trúc ứng dụng "N") có ý nghĩa bất kể cơ sở dữ liệu ("M") hoặc khung kết thúc trước ("A") nào bạn đang sử dụng. Bạn có các tuyến đường phía máy khách của mình trong 'app/client/users/users.routes.js'. Đặt các tuyến đường API người dùng tốc hành trong 'ứng dụng/máy chủ/người dùng/người dùng.api.js' và làm theo mẫu đó. –

Các vấn đề liên quan