我正在从客户端做一个简单的请求,使用jQuery并传递一个参数,该参数将用于检索与我服务器上的特定id相关联的数据(数据在JSON文件中)。
请求客户端:
$(document).ready(function(){
console.log("Doctor id: "+URL.id); //LOG THE ID OF THE DOCTOR FROM THE PAGE URL
$.get( '/doctorID',{ id: URL.id }, function(data) {
console.log(typeof data)
JSON.parse(data).map(addElement); // ignore add element function
});
});
var URL = function () {
// This function is anonymous, is executed immediately and
// the return value is assigned to QueryString!
var query_string = {};
var query = window.location.search.substring(1);
var vars = query.split("&");
for (var i=0;i<vars.length;i++) {
var pair = vars[i].split("=");
// If first entry with this name
if (typeof query_string[pair[0]] === "undefined") {
query_string[pair[0]] = decodeURIComponent(pair[1]);
// If second entry with this name
} else if (typeof query_string[pair[0]] === "string") {
var arr = [ query_string[pair[0]],decodeURIComponent(pair[1]) ];
query_string[pair[0]] = arr;
// If third or later entry with this name
} else {
query_string[pair[0]].push(decodeURIComponent(pair[1]));
}
}
return query_string;
}();
网址功能从网址获取我需要的ID,类似于http://localhost:5000/pages/personaleGenerico.html?id=4
我在我的get请求中传递了id参数,然后服务器端我正在使用Node.js:
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({ extended: true }));
app.get('/doctorID', function(req, res) {
id = req.param.id;
console.log(id);
});
我已经尝试了req.param.id
和req.body.id
,但我一直得到一个未定义的值。
如何获得我需要的正确值?我错过了什么吗?
答案 0 :(得分:2)
尝试req.query.id
。
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({ extended: true }));
app.get('/doctorID', function(req, res) {
id = req.query.id;
console.log(id);
});
将GET方法更改为:
$.get( `/doctorID?id=${URL.id}`, function(data) { //...
答案 1 :(得分:1)
看起来您的目标是查询,但使用的是param。为了更改代码以使用param,您必须更改以下代码
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({ extended: true }));
app.get('/doctorID', function(req, res) {
id = req.param.id;
console.log(id);
});
使用req.param.id
您的app.get('/doctorID)
必须是app.get('/doctorID/:id')
您的目标将是'/doctorId/' + Url.id