在Custom API get方法中找不到查询字符串

时间:2013-09-13 13:29:28

标签: azure-mobile-services

我试图从我的自定义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);

    }
};

1 个答案:

答案 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 });
};