MongoDB
 sql >> डेटाबेस >  >> NoSQL >> MongoDB

मैं कुछ शर्तों के आधार पर अलग-अलग पेजों पर रीडायरेक्ट करना चाहता हूं

यदि आप अजाक्स या अन्य तरीकों से एपीआई कॉल का उपयोग करके अनुरोध सबमिट कर रहे हैं तो आप ऐसा नहीं कर सकते।

चूंकि ये सभी तरीके एकल पृष्ठ अनुप्रयोग को लागू करने के लिए हैं , इसलिए किसी भिन्न पृष्ठ को प्रस्तुत करने की अनुमति नहीं है।

क्या होता है जब शर्त पूरी हो जाती है और एक अलग पृष्ठ प्रस्तुत करने का अनुरोध किया जाता है?

मॉड्यूल जिसे एपीआई कहा जाता है वह एपीआई से कुछ प्रतिक्रिया प्राप्त करने के लिए ब्राउज़र पर प्रतिक्रिया की प्रतीक्षा कर रहा है, हालांकि आपका एपीआई एक अलग HTML पृष्ठ लोड करने का प्रयास कर रहा है जो ब्राउज़र प्रतिबंधित करता है और इस प्रकार आप कभी भी अजाक्स कॉल के माध्यम से प्रस्तुत नहीं होंगे।

इसे कैसे करें?

दो रास्ते हैं:

  1. सिंगल पेज एप्लिकेशन:AngularJs, ReactJs जैसे जावास्क्रिप्ट फ्रेमवर्क का उपयोग करने से आपको केवल HTML टेम्प्लेट बदलने में मदद मिलेगी, न कि पूरे पेज पर।

अजाक्स के साथ आप यह कर सकते हैं:

एचटीएमएल

<body>
    <div>   
        <div align="center">
        <form id="form1">
            <label>Please enter below details</label><br><br>
            <label>First Name *: </label><input id="FName" type="text" name="FName"/><br><br>
            <label>Last Name *: </label><input id="LName" type="text" name="LName"/><br><br>         
            <label>Email Address *: </label><input type="email" name="email"><br><br>
            <br><br>
            <input type="button" value="Submit" onClick:"submitForm()"/>
        </form>
        <div id="showValue"></div>
        </div>
    </div>
</body>

जावास्क्रिप्ट

function submitForm() {
    $.ajax({
        url: '/addName',
        type: 'POST',
        headers: headers,
        data: {
            "Fname": $("#FName").val(),
            "Lname": $("#LName").val(),
            "email": $("#email").val()
        },
        success: function(result) {
            //append result to your html
            //Dynamic view
            $("#form1").hide();
            var html = '<div><span>First Name: ' + result.fName + '</span><span>Last Name: ' + result.lName + '</span></div>';
            $("#showValue").html(html);    
        },
        error: function (error) {
            alert('error ',error);
        }
    });
}

सर्वर साइड कोड मुझे लगता है कि आप एक्सप्रेस.जेएस और बॉडी-पार्सर का उपयोग कर रहे हैं

app.post('/addName', (req, res) => {
    //Insert into db
    var body = req.body;
    res.send({
    fName: body.FName,
    lName: body.LName
    });
});
  1. form का उपयोग करें सबमिट विधि:इसका उपयोग करके आप पृष्ठ को प्रस्तुत करने में सक्षम होंगे, हालांकि आप उसी पृष्ठ पर प्रतिक्रिया वापस नहीं भेज सकते हैं, अर्थात,

एचटीएमएल

<body>
    <div>   
        <div align="center">
        //Can't send params using this approach
        //Data will be send as query string
        <form action="/postedUser/" method="GET">
            <label>Please enter below details</label><br><br>
            <label>ID *: </label><input id="ID" type="text" name="ID"/><br><br>
            <input type="submit" value="Submit" /></form>
        </div>
    </div>
</body>

नोडजेएस

//If there will be res.send({});
// This won't be returned to same page. But your code doesn't do any such thing

router.get('/postedUser/', ensureAuthenticated, function(req, res) {
   User.findOne({_id: req.query.id}, function(err, data) {
        if (err) throw err;
        if (req.user._id == data._id) {
        res.redirect('/users/profile');
        } else {
        res.render('postedUser', {
            data: data
        });
        }
    });
});



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. कैसे वसंत डेटा mongorepository विधि का उपयोग कर केवल चयनित मोंगो आईडी लाने के लिए?

  2. नेवला सीमा/ऑफ़सेट और गणना क्वेरी

  3. स्प्रिंग-डेटा के माध्यम से MongoDB में बड़े संग्रह पर पुनरावृति करें

  4. MongoDB डेटा की विषम वापसी, सरणी में पहला आइटम पूर्ण रूप से लौटा, बाकी कुछ गुणों के साथ छोड़ दिया गया?

  5. $लुकअप परिणाम mongodb . की गिनती