无法从javascript上的Backendless表中获取值

时间:2016-03-11 06:16:59

标签: javascript backendless

我的表“产品”包含完整字段。我尝试找到并获得某些条件的值。这是javascript文件

var APPLICATION_ID = "id",
SECRET_KEY = "key",
VERSION = "v1"; 

Backendless.initApp(APPLICATION_ID, SECRET_KEY, VERSION);

function Products(args) {
    args = args || {};
    this.id_user = args.id_user || "";
    this.cal = args.cal || null;
    this.id_day = args.id_day || null;
    this.id_product = args.id_product || null;
    this.nameProduct = args.nameProduct || "";
}

var productStorage = Backendless.Persistence.of( Products );

var query = { 
    condition : "id_day = 33"
}

function get(){
    try{
        var product = productStorage.find(query).data;
    }catch( e )
    {
        if( e.code != 1009 )
        alert(e.message);
    }

    return [];
}


var array = get();
alert(array[0]);

在警告信息中我只是“未定义”。而且函数“get()”中的catch块也没有问题。

2 个答案:

答案 0 :(得分:2)

现在你总是返回一个空数组,即使你的查询找到了一个产品 - 一个空数组在索引中没有任何内容' 0'因此你得到了#undefined&#39 ;

尝试添加

return product;
,在您查询之后立即获取()。

使用console.log代替alert可以更轻松地进行调试 - 您需要打开浏览器的javascript控制台才能看到它:

console.log(array)

如果您确实选择使用alert,则将值转换为JSON可以提供帮助:

alert(JSON.stringify(array));

答案 1 :(得分:0)

感谢Backendless团队,他们帮我解决了这个问题。所以我的代码:

var APP_ID = "id",
SECRET_KEY = "key",
VERSION = "v1"; 

function Products(args) {
    args = args || {};
    this.id_user = args.id_user || "";
    this.cal = args.cal || null;
    this.id_day = args.id_day || null;
    this.id_product = args.id_product || null;
    this.nameProduct = args.nameProduct || "";
}

var dataQuery = {
   condition: "id_day = 33"
};

function fetchingFirstPageAsync(){

    var products = Backendless.Persistence.of(Products).find(dataQuery);

    for(var i = 0; i < products.data.length; i++) {
        console.log("Product name = " + products.data[i].nameProduct);
    }
}

Backendless.initApp( APP_ID, SECRET_KEY, VERSION );
fetchingFirstPageAsync();