循环引用最后一个值

时间:2015-12-26 15:43:59

标签: database node.js loops cassandra

这里我正在使用此函数来检查数据库中是否已经存在数据库,如果不是我计划添加它(尚未实现)。

function pairPlaces(parsed, callback) {

    for (var placeKey in parsed.results) {
        var place = parsed.results[placeKey];
        var placeid = place.place_id;
        var name = place.name;
        var lat = place.geometry.location.lat;
        var lng = place.geometry.location.lng;
        var vicinity = place.vicinity;

        console.log(placeKey + "::" + name + "-" + placeid);

        client.execute("select * from places where placeid='"+placeid+"'", function(err, result) {
            if(!err) {
                if(result.rows.length > 0) {
                    console.log('Found...');
                } else {
                    console.log('Added: ' + name);
                }
            }else {
                console.log('DB ERR: %s', err);
            }
        });
    }
    callback(parsed);
}

但是,在检查数据库并发现没有添加任何位置后,控制台会记录与循环中最后一个相同的地名,而不是相应的查询位置。我做错了什么?

上述功能的控制台输出:

0::Harry's Chocolate Shop-ChIJNx4C967iEogRjyKJNWYeSjs
1::Brother's Bar & Grill-ChIJV5TTw67iEogRZF2mm1f6K-0
2::Jake's Roadhouse-ChIJ6SGX2a7iEogRB_d9evKamGQ
3::Qdoba Mexican Grill-ChIJofbRu67iEogRpPnhaYGiwl0
4::Juilliard-ChIJSUzXka7iEogRlPiKfmP5fc4
Added: Juilliard
Added: Juilliard
Added: Juilliard
Added: Juilliard
Added: Juilliard

0 个答案:

没有答案