Я очень новичок в веб-разработке. Раньше я занимался разработкой настольных систем с использованием WPF и C#. Сейчас я учусь Node.jsПередача параметров маршрутам в node.js
У меня есть модель под названием Party.js, в которой я определяю два экспорта следующим образом:
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);
});
};
Теперь у меня есть маршрут под названием Party.js, в котором у меня есть два получить методы следующим образом:
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);
}
});
}
});
});
Теперь, когда я использую 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;
}
});
Мой вопрос: Почему выше ajax call возвращает мне все стороны? Я просто хочу, чтобы получить партию, чья patyCode передаются в данные Аякса вызова ....
Вам нужно добавить свой party_id в свой URL-адрес ajax, как это - 'url:"/Party/"+ party_id,'. Тогда ваш соответствующий маршрут на стороне сервера должен выглядеть как «/ Party /: partyCode» –
, как эта функция работает с Party.getPartyByPartyCode? Я не вижу, что он использует какой-либо partyCode в качестве входных данных. –
@ManishJangir Не могли бы вы рассказать мне, как я могу передать свой партийный код этой функции? – Vishal