我试图从我的自定义API读取GET方法中的一些参数,尽管Azure移动服务总是返回此错误:
脚本错误' /api/customapi.js'。 TypeError:无法读取属性' lat'未定义的 在C:\ DWASFiles \ Sites \ XXXXXXXXX-android \ VirtualDirectory0 \ site \ wwwroot \ App_Data \ config \ scripts \ api \ customapi.js:17:49 [外部代码]
请求的网址如下:https://XXXXXXXXXX-android.azure-mobile.net/api/customapi?lat=-19&lng=-43
exports.post = function(request, response) {
// Use "request.service" to access features of your mobile service, e.g.:
// var tables = request.service.tables;
// var push = request.service.push;
response.send(statusCodes.OK, { message : 'Hello World!' });
};
exports.get = function(request, response) {
if (request.parameters !== null) {
var req = require("request");
console.log("lat: " + request.parameters.lat);
console.log("lng: " + request.parameters.lng);
}
};
答案 0 :(得分:4)
在自定义API中,传递的request
参数与express.js
中使用的request object具有相同的属性。要访问查询字符串,您需要使用request.query
:
exports.get = function(request, response) {
var httpReq = require("request");
var lat = request.query.lat; // the type of the variable is a string; use something like parseFloat if you want it as a number
var lng = request.query.lng;
response.send(200, { lat: lat, lng: lng });
};