Ich bin sehr neu in Web Development. Ich habe früher Desktop-Entwicklung mit WPF und C# gemacht. Jetzt lerne ich Node.jsParameter an Routen in node.js übergeben
ich ein Modell namens Party.js, in dem ich zwei Exporte wie folgt definieren:
module.exports.getAllParties = function(callback){
Party.find().lean().exec(function(err, parties){
if (err) return callback(err, null);
callback(null, parties);
});
};
module.exports.getPartyByPartyCode = function(partyCode, callback){
Party.find({partyCode: partyCode}).exec(function(err, party){
if(err) return callback(err, null);
callback(null, party);
});
};
Nun, ich habe auch eine Route namens Party.js in dem ich Get zwei Methoden wie folgt:
router.get('/', function(req, res, next){
//retrieve all parties from Party model
Party.getAllParties(function(err, parties) {
if (err) {
return console.error(err);
} else {
//respond to both HTML and JSON. JSON responses require 'Accept: application/json;' in the Request Header
res.format({
//response in dust or jade files
html: function(){
res.render('Party', {
title: 'Party',
"parties" : parties
});
},
//JSON response will show all parties in JSON format
json: function(){
res.json(parties);
}
});
}
});
});
router.get('/:partyCode', function(req, res, next){
Party.getPartyByPartyCode(function(err, party) {
if (err) {
return console.error(err);
} else {
//respond to both HTML and JSON. JSON responses require 'Accept: application/json;' in the Request Header
res.format({
//response in dust or jade files
html: function(){
res.render('Party', {
title: 'Party',
"party" : party
});
},
//JSON response will show all parties in JSON format
json: function(){
res.json(party);
}
});
}
});
});
Nun, wenn ich ajax:
var inputElem = $('#partyForm :input[name="partyCode"]'),
inputVal = inputElem.val(),
data = { partyCode : inputVal },
eReport = ''; //error report
$.ajax(
{
type: "GET",
url: "/Party",
dataType: "json",
data: data,
beforeSend: function(jqXHR, settings)
{
console.log(settings.url);
},
success: function(party)
{
if (party)
{
console.log(party);
return 'Party ' + party.partyName + ' has already taken party code: ' + party.partyCode + '. Please choose a different PartyCode.';
}
else
{
console.log("party does not exist.");
return true;
}
},
error: function(xhr, textStatus, errorThrown)
{
alert('ajax loading error... ... '+url + query);
return false;
}
});
Meine Frage ist: Warum die über Ajax-Anruf gibt mir alle Parteien zurück? Ich möchte nur eine Partei, deren patyCode erhalten, ist in geben auf die Daten des Ajax-Aufruf ....
Sie müssen Ihre party_id zu Ihrem Ajax URL wie folgt hinzufügen - 'url:"/Party/"+ party_id,'. Dann sollte Ihre passende Route auf der Serverseite wie '/ Party /: partyCode' aussehen. –
Wie funktioniert diese Funktion? Party.getPartyByPartyCode? Ich sehe nicht, dass es einen PartyCode als Eingabe verwendet. –
@ManishJangir Kannst du mir bitte sagen, wie ich meinen Partycode an diese Funktion weitergeben kann? – Vishal