2013-05-25 37 views
12

Hiện tại tôi đang sử dụng Node.js cho phần phụ trợ và extjs hoặc xương sống cho máy khách và bây giờ tôi hoàn toàn nhầm lẫn về cấu trúc thư mục.Cấu trúc thư mục cho cả ứng dụng web phía máy khách và ứng dụng khách dày

Sử dụng express cấu trúc thư mục của tôi là như sau

appname 
    |--controllers 
    |--models 
    | |--appmodel.js 
    |--public 
    | |--css 
    | |--js // any client-side javascripts 
    |--routes 
    | |--router.js 
    |--views 
    | |--appview.ejs 
    |--app.js 

nơi app.js là điểm xuất phát và nó sử dụng router.js để xử lý định tuyến và cung cấp các quan điểm. Điều này làm việc tốt nếu nó chỉ là phía máy chủ phát triển. Bây giờ nếu tôi muốn sử dụng ExtJS hoặc Backbone cho khách hàng, tôi nên tổ chức mã của mình như thế nào? Tôi có nên thêm nó vào public thư mục hoặc views không?

appname 
    |--controllers 
    | |--extbasedcontroller.js // correct location? 
    |--models 
    | |--appmodel.js 
    | |--extbasedmodels.js // correct location? 
    |--public 
    | |--css 
    | |--js 
    | | |--extjs // extjs files 
    |--routes 
    | |--router.js 
    |--views 
    | |--appview.ejs 
    | |--extbasedview.ejs // correct location? 
    |--app.js 

Nếu đây là trường hợp, tôi nên đặt mô hình cho tệp extjs của mình ở đâu? Nếu tôi đặt nó trong thư mục models nó cảm thấy như tôi đang trộn lên khách hàng và mã máy chủ trong một thư mục và nó sẽ gây nhầm lẫn ...

Trả lời

9

Ở vị trí của bạn, tôi sẽ làm theo cách đó:

appname 
    |--ServerCode 
    | |--controllers 
    | |--models 
    | | |--appmodel.js 
    | |--routes 
    | | |--router.js 
    | |--views 
    | | |--appview.ejs 
    | |--app.js 
    |--public 
    | |--css 
    | |--js // any client-side javascripts 
    | |--models 
    | |--controllers 
    | |--... 

ý tưởng chính là đặt thư mục công cộng ngoài t anh ta phạm vi của máy chủ của bạn javascript tệp.

Xem ví dụ ở đây: https://github.com/madhums/node-express-mongoose-demo/

+0

Tôi cũng đã sử dụng cấu trúc này – GantengX

+0

Vì vậy, u có sử dụng node.js không? nếu có, có 2 mô hình mvc, một nằm ở phía máy chủ, một số khác nằm ở phía khách hàng? –

+0

Trải nghiệm của tôi với Node.js là viết kiến ​​trúc MVC ở phía máy chủ. Và sử dụng kiến ​​trúc MVVM ở phía máy khách, với các khung công tác như Angular.js – Julien

2

Chỉ cần đặt toàn bộ /webapp dưới /public, do đó bạn sẽ kết thúc việc tạo ra, cho Ví dụ, các mô hình frontend dưới /public/webapp/models

appname 
    |--models 
    | |--appmodel.js 
    |--public 
    | | |--webapp // extjs/backbone files 
    | | | |--models 
    | | | |--controllers 
    | | | |--css 
    | | | |--js 
    | | | |--img 
    | | | |--views 
    | | | | |--appview.ejs 
    | | | | |--extbasedview.ejs 
    |--routes 
    | |--router.js 
    |--app.js 
0

Heres cấu trúc thư mục đề nghị tôi:

appname 
    |--webapp 
    | |--img 
    | |--js 
    | | |--controllers 
    | | | |--controller.js 
    | | |--something.js 
    | |--css 
    | |--views 
    | | |-- appview.ejs 
    | |--index 
    | |--404 etc. 
    |--app.js 
    |--package.json 
    |--README 
    |-- etc. 

Tôi nghĩ rằng nó rất gọn gàng và dễ dàng để điều hướng trong, bởi vì tất cả các máy chủ và node_modules thứ nằm ngoài và các tập tin Tôi cần cho ứng dụng nằm trong thư mục "webapp". Nếu bạn thực sự cần một thư mục được gọi là "công khai" (tôi không thể nhớ nếu thể hiện nhu cầu một hay không) tôi nghĩ bạn chỉ có thể đổi tên thư mục "webapp" thành "công khai" hoặc thả thư mục "webapp" bên trong "công khai". Tôi cũng khuyên bạn nên sử dụng AngularJS thay vì .ejs, nhưng làm những gì bạn muốn làm. :)

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