2011-12-08 13 views
21

मैं expressjs में मार्गों को अलग करने के लिए इस कोड है कहोNodeJS/Expressjs एप्लिकेशन संरचना

require('./controllers/routes.js')(express,app,client); 

1) मैं कैसे करूँ नई फ़ाइलों में db प्रश्नों को अलग सर्वश्रेष्ठ तरीके से?

यदि मैं डीबी तर्क अलग करता हूं तो भी यह फ़ाइल बहुत बड़ी हो जाएगी।

2) मार्गों को अलग करने का एक अच्छा तरीका क्या है? शायद अलग मॉड्यूल? और फिर उन्हें app.js में सभी की आवश्यकता है?

उत्तर

32

यहाँ एक ऐसी ही सवाल है जो आप पढ़ना चाहिए नहीं है: How to structure a express.js application?

1) अपने सभी क्वेरी तर्क मॉडल (मॉड्यूल में रहते हैं/उदाहरण के लिए मॉडल)

2 में रखा जाना चाहिए) को अलग करें आपके सभी मार्गों (नियंत्रक) मॉड्यूल में (और उन्हें पूर्व के लिए/मार्गों में डाल) तक मार्गों मैं उदाहरण के लिए मतलब है: - "उपयोगकर्ता" के लिए सभी तर्क मार्गों /routes/users.js में जाने

कोशिश रखने के लिए जितना संभव हो एमवीसी-आईएसएच के रूप में ऐप।

के लिए छोटे उदाहरण अपने अनुप्रयोग से ऊपर:

app.js

// configuration for express etc 
require('./routes/index')(app) 

मार्गों/index.js

var model = require("../models/users.js"); 

module.exports = function (app) { 

    app.get('/', function (req, res, next) { 
    model.get_recent(function (err, results) { 
     // do stuff with your results 
     res.render('index'); 
    }); 
    }); 

} 

मॉडल/users.js

module.exports = { 
    get_recent: function(callback) { 
    var query = "SELECT * FROM users LIMIT 10"; 
    database.query(query, callback); 
    } 
} 
+0

ठीक है। हाँ मैं एमवीसी पैटर्न का पालन करने की कोशिश कर रहा हूं, लेकिन एक्सप्रेसज के साथ ऐसा करने के तरीके के बारे में अपने दिमाग को लपेटने में कठिनाई हो रही है। तो मैं इसे कर सकता हूं जिस तरह से मैं इसे कर रहा हूं? और app.js में सभी मार्गों की आवश्यकता है? और मॉडल, मैं ऊपर दिए गए उदाहरण में इसे कैसे अलग करूं? क्या आप शायद दिए गए कोड को देखते हुए एक छोटा सा उदाहरण दिखा सकते हैं? बहुत सराहना की जाएगी। – georgesamper

+0

ने मेरी पोस्ट – alessioalex

+0

अपडेट की है, जो अब सही समझ में आता है, इसे साफ़ करने के लिए बहुत बहुत धन्यवाद :) – georgesamper

5

एक्सप्रेसज डाउनलोड पैकेज में, "एमवीसी" नामक एक फ़ोल्डर है। लेखक एक छोटे से & कुशल एमवीसी संरचना के लिए एक अच्छा उदाहरण प्रदान करता है। कोड के माध्यम से जा रहे हैं, आप बहुत प्रेरणा मिलेगी।

+2

यह रेपो [**' visionmedia/express' **] पर मिल सकती है (https://github.com/ visionmedia/express) निर्देशिका में [** 'express/example/mvc' **] (https://github.com/visionmedia/express/tree/master/examples/mvc) उन लोगों के लिए जो इस में रूचि रखते हैं मैं था। –

1

कैसे express-train? मैं हाल ही में इसका उपयोग कर रहा हूं, और यह जटिल ऐप संरचनाओं के साथ अच्छी तरह से खेलता है।

संबंधित मुद्दे