javascript - 无法删除来自 Cassandra 数据库的 rows.__columns 属性

标签 javascript node.js cassandra

我有一个从 Cassandra 提取数据的 node.js 代码,我尝试从来自 cassandra 驱动程序的对象中删除列,但出现错误。

'use strict';
var ResultFormatter = (function () {
    function ResultFormatter() {
    }
    ResultFormatter.RemoveColumnNames = function (data) {
        data.forEach(function (obj) {
            if (obj['__columns']) {
                delete obj['__columns'];
            }
        });
    };
    return ResultFormatter;
})();
module.exports = ResultFormatter;

以及调用它的代码:

this._client.execute(query, [], function (err, result) {
            if (err) {
                callback(err);
            } else {
                try  {
                    var siteList = [];
                    ResultFormatter.RemoveColumnNames(result.rows);
                    result.rows.forEach(function (row) {
                        var site = row;
                        site.contractedResources = JSON.parse(row.contractedResources);
                        siteList.push(site);
                    });
                } catch (er) {
                    callback(er);
                    return;
                }
                callback(null, siteList);
            }
        });

问题是 __columns 属性未删除。

在 CentOS 6.4 上安装的 Node 版本是 0.10.40 Cassandra 位于同一个盒子上。

有趣的是,我们在 Windows 机器上安装了另一个 Node 和 Cassandra,并且完全相同的代码在那里工作。

我研究了有关在对象中使用删除的 JavaScript 规范。

我的问题是如何处理 result.rows?为什么它与来自 Windows 盒子中的 cassandra 的不同?

有什么想法吗?

最佳答案

我不知道你为什么要删除 private not enumerable property in javascript

您不应更改外部模块返回的实例的私有(private)属性。

如果要迭代行中的所有公共(public)(可枚举)属性,可以使用:

row.forEach(function (value, name) {
  console.log('column %s with value %s', name, value);
});

或者您可以序列化整个(它不会包含私有(private) Prop ):

JSON.stringify(row);

关于javascript - 无法删除来自 Cassandra 数据库的 rows.__columns 属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28330880/

相关文章:

javascript - 如何过滤数组并将其与 Javascript 中的函数参数进行比较?

javascript - 在 Canvas 上绘图表演 buggy

node.js - 我应该如何在非中间件(Passport.js)中使用 req?

database - 在 Cassandra 中获取每个组的最新条目

javascript - Bootstrap Popover 因 ajax 失败

javascript - 从二维数组中检索随机值

node.js - Docker Compose 上的 Postgres ECONNREFUSED 与 NodeJS

cassandra - Cassandra 中的复合键与 Pig

cassandra - cassandra 3.0.x 和 3.11.x 版本之间的差异

javascript - AngularJs - 将 2 个关键相似的数组合并为 1 个 ng-repeat