【发布时间】:2013-03-06 23:13:12
【问题描述】:
var obj = {};
obj.url = hostNames[i];
obj.statusCode = res.statusCode;
obj.headers = res.headers;
db.collection.save(JSON.stringify(obj, null, 2));
我目前正在尝试通过 Node.js 请求 HTTP 响应,然后使用 JSON.stringify(将事物转换为 JSON 文档格式的方法)将该输出解析到 MongoDB。出于某种原因,我在 MongoDB 中得到了一些奇怪的输出,它是这样的:
> db.scrape.find()
{ "_id" : ObjectId("51472849650593014a3c20da"), "0" : "{", "1" : "\n", "2" : " ", "3" : " ", "4" : "\"", "5" : "u", "6" : "r", "7" : "l", "8" :
我认为它正在做的是将每个字符解释为一个新变量。我的代码做错了什么?
【问题讨论】:
-
我有点困惑:你为什么要存储 JSON 字符串,而不是文档本身?正如 Mongo 期望您提供一个 document 一样,它对提供的字符串做了唯一更明智的事情 - 将其解析为一个数组。您至少应该将其存储为...
db.collection.save({res: JSON.stringify(obj, null, 2)});。但是,坦率地说,您在这里尝试做 Mongo 的工作:为什么在输出时不格式化这个对象? -
感谢您的回复。我在想,让 JSON.stringify() 格式化导入会更方便。在我的情况下你会怎么做?请记住,每个“网站”有三个对象
url、statusCode和headers。url是每个“网站”响应的主键。
标签: javascript json node.js http mongodb