下面,您可以看到这两个日志的输出。第一行代码清楚地显示了我试图访问的属性的完整对象,但在下一行代码中,我无法使用配置访问它。Col_id_3(见截图中的“undefined”?)有人能解释一下吗?我也可以访问除field_id_4之外的所有其他属性。

console.log(config);
console.log(config.col_id_3);

这就是这些行在控制台中打印的内容


当前回答

我没有得到MongoDB错误消息在抛出错误在我的NodeJS API响应,所以我做了以下工作

// It was not working
console.log(error.message) // prints the error
let response = error;
// message property was not available in the response.
/* 
{
  "status": "error",
  "error": {
    "driver": true,
    "name": "MongoError",
    "index": 0,
    "code": 11000,
    "keyPattern": {
      "event_name": 1
    },
    "keyValue": {
      "event_name": "followup"
    }
  }
}
*/
// so I did this
let message = error.message;
let response = JSON.parse(JSON.stringify(error));
response.message = message;
// message property is now available in the response.
/* 
{
  "status": "error",
  "error": {
    "driver": true,
    "name": "MongoError",
    "index": 0,
    "code": 11000,
    "keyPattern": {
      "event_name": 1
    },
    "keyValue": {
      "event_name": "followup"
    },
    "message": "E11000 duplicate key error collection: mycollections.notificationevents index: event_name_1 dup key: { event_name: \"followup\" }"
  }
}
*/

其他回答

对我来说,这是一个与猫鼬有关的问题。

我正在循环从Mongo查询中得到的对象。我只需要删除:

items = await Model.find()

并将其替换为:

items = await Model.find().lean()

在这个回答的背景下: https://stackoverflow.com/a/52994419

重新生成文件的解决方案可能并不总是可行的。去除字符串前的“非空格”字符。所以,如果你能修剪字段名,就能把事情清理干净。

就像这样:

const records = parse(csvData, {
      columns: (colNameArray) => {
        return colNameArray.map((value, index) => {          
          return index === 0 ? value.trim() : value;
        });
      },
      onRecord: mapper.mapRow
    });

如果您不关心这个的性能,也可以跳过索引检查。

console.log(anObject)的输出是误导性的;通过单击>展开控制台中显示的对象树,显示的对象的状态才会解析。当你console.log对象时,它不是对象的状态。

相反,尝试console.log(object .keys(config)),甚至console.log(JSON.stringify(config)),您将看到调用console.log时的键或对象的状态。

您将(通常)发现在console.log调用之后添加了键。

我今天也遇到了同样的问题。问题是由uglify-js引起的。在我执行了相同的非丑陋代码后,问题得到了解决。删除的

--mangle-props

从uglify-js中编写丑陋的代码就足够了。

也许,最好的做法是为那些必须被uglify-js的regex规则破坏的属性使用一些前缀。

来源如下:

var data = JSON.parse( content);
...
this.pageIndex = parseInt(data.index);
this.pageTotal = parseInt(data.total);
this.pageLimit = parseInt(data.limit); 

它是这样被丑化的:

var n = JSON.parse( t);
...
this._ = parseInt(n.index), this.g = parseInt(n.total), this.D = parseInt(n.C)

我的数据只是json数据字符串。(这个变量在会话中存储为json字符串)。

console.log(json_string_object)

->只返回该字符串的表示形式,无法区分是string还是object。

所以为了让它工作,我只需要把它转换回真实对象:

object = JSON.parse(json_string_object);