Javascript 无法删除行。\来自Cassandra db的columns属性

Javascript 无法删除行。\来自Cassandra db的columns属性,javascript,node.js,cassandra,Javascript,Node.js,Cassandra,我有一个node.js代码,它从Cassandra中提取数据,我试图从Cassandra驱动程序中的对象中删除列,但是我得到了一个错误 'use strict'; var ResultFormatter = (function () { function ResultFormatter() { } ResultFormatter.RemoveColumnNames = function (data) { data.forEach(function (obj

我有一个node.js代码,它从Cassandra中提取数据,我试图从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上安装的节点版本为0.10.40 卡桑德拉在同一个盒子里

有趣的是,我们在一个Windows机箱上安装了另一个节点和Cassandra,并且使用了完全相同的代码

我研究了javascript规范中关于在对象中使用delete的内容

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


有什么想法吗?

我不知道你为什么要删除

您不应该更改外部模块返回的实例的私有属性

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

row.forEach(function (value, name) {
  console.log('column %s with value %s', name, value);
});
或者您可以序列化整个
(它不包括私人道具):


非常感谢。虽然这是一个好主意,但您知道为什么它在安装在Windows box中的节点中工作,而在linux centos box中不工作吗?我找到了原因。它是Cassandra驱动程序,在1.0.1版本中,对象的构造不同,它允许我们从中删除,在linux box中,我运行了npm安装,它安装了最新的驱动程序1.0.3,正如您在链接中指出的那样。不允许删除的私有属性。
JSON.stringify(row);