0

Couchdb 吐出一个这样的 url
http://127.0.0.1:5984/roxanne/_design/request/_view/images
这有我的数据库和我所有的 json。问题是我希望解析所有 json 并将其发送到名为 /getDocuments 的不同 url。我正在使用节点、快递、纳米。在我的 server.js 中,我有这段代码。

app.get('/getDocuments', function(req, res){
  var roxanne = nano.use('roxanne');
  nano.db.get('roxanne', function(err, body) {
    if (!err) {
      console.log(body);
    }
    res.json(body);
  });
}) 

这不是我想要的打印出来:

{
  "db_name": "roxanne",
  "doc_count": 7,
  "doc_del_count": 2,
  "update_seq": 12,
  "purge_seq": 0,
  "compact_running": false,
  "disk_size": 204904,
  "data_size": 3369,
  "instance_start_time": "1375974435712463",
  "disk_format_version": 6,
  "committed_update_seq": 12
}

这没有帮助,我想要 url 打印出来并解析的所有 json。我也做了一个小实验,它说意外令牌非法。

'{"total_rows":6,"offset":0,"rows":[

我发现这是我的问题,但不完全确定这意味着什么。 从 CouchDB 解析 JSON 时如何通过“total_rows”

所以我的问题是:

如何将所有 json 的 localhost url 获取到 /getDocument 中,以便稍后在我的项目中我可以通过它获取 json 和每个。

谢谢你!如果您有任何问题,请询问。

ps:我的实验是这样的:

    var json = '{"total_rows":6,"offset":0,"rows":[
{"id":"American_Airlines","key":"American_Airlines","value":{"_id":"American_Airlines","_rev":"1-d915fad8f624769d274794717b60311f","name":"American_Airlines","industry":"Flight","employee_count":"820,712,807","revenue":"$1,219,280,981","lead_source":"Linkedin","use_case":"exec manag","sales_cycle":"80","adm":"Adm goes here","se":"Se goes here","path":"assets/upload-images/2013/08/1375890760.png","fileTime":"1375890760"}},
{"id":"Dicks_Sporting_Goods","key":"Dicks_Sporting_Goods","value":{"_id":"Dicks_Sporting_Goods","_rev":"1-90cc5645b417ba0658aa7dcf5d576a51","name":"Dicks_Sporting_Goods","industry":"Store","employee_count":"3,098,089","revenue":"$2,918,798","lead_source":"website","use_case":"seo, stuff, moar stuff","sales_cycle":"20","adm":"Adm goes here","se":"Se goes here","path":"assets/upload-images/2013/08/1375890818.png","fileTime":"1375890818"}},
{"id":"FedEx","key":"FedEx","value":{"_id":"FedEx","_rev":"2-709a9dba4723b77fb6c40b3f0110ef97","name":"FedEx","industry":"industy here","employee_count":"100,000,000,000,000","revenue":"$10,000,000,000,000,000,000","lead_source":"twitter","use_case":"use case","sales_cycle":"90","adm":"adm goes here","se":"se goes here","path":"assets/upload-images/2013/08/1375888322.png","fileTime":"1375888322"}},
{"id":"Five_Guys","key":"Five_Guys","value":{"_id":"Five_Guys","_rev":"1-936c3f2da5e20031d618b005e5080181","name":"Five_Guys","industry":"Burger Joint","employee_count":"452,342,362","revenue":"$2,352,235,235,234","lead_source":"linkedin","use_case":"Data","sales_cycle":"20","adm":"Adm goes here","se":"Se goes here","path":"assets/upload-images/2013/08/1375892543.png","fileTime":"1375892543"}},
{"id":"hulu","key":"hulu","value":{"_id":"hulu","_rev":"1-d60340fde35feabbf78463c28684f3e3","name":"hulu","industry":"Internet","employee_count":"124,243,521,346","revenue":"$34,624,573,467,245,643","lead_source":"Facebook","use_case":"unkown","sales_cycle":"333","adm":"Kenneth","se":"MEMMEMEME","path":"assets/upload-images/2013/08/1375892898.jpg","fileTime":"1375892898"}},
{"id":"jiffy_lube","key":"jiffy_lube","value":{"_id":"jiffy_lube","_rev":"1-6c6b6fe2213c541b9c437aa8c47286fd","name":"jiffy_lube","industry":"industy here","employee_count":"12,124,124,124","revenue":"$23,897,629,871","lead_source":"scrubs","use_case":"something ","sales_cycle":"90","adm":"Adm goes here","se":"Se goes here","path":"assets/upload-images/2013/08/1375890322.jpg","fileTime":"1375890322"}}
]}';
    var obj = JSON.parse(json);
    res.json(obj)

哪个输出:

var json = '{"total_rows":6,"offset":0,"rows":[
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
unexpected token ILLEGAL

PS:这行得通,所以问题是total_rows,但我仍然需要弄清楚如何让我的本地主机到不同的url。

var json = '{"id":"American_Airlines","key":"American_Airlines","value":{"_id":"American_Airlines","_rev":"1-d915fad8f624769d274794717b60311f","name":"American_Airlines","industry":"Flight","employee_count":"820,712,807","revenue":"$1,219,280,981","lead_source":"Linkedin","use_case":"exec manag","sales_cycle":"80","adm":"Adm goes here","se":"Se goes here","path":"assets/upload-images/2013/08/1375890760.png","fileTime":"1375890760"}}';
  var obj = JSON.parse(json);
  res.json(obj)

这行得通,但就像我说的那样,我仍然试图找出主要问题,然后我将专注于 total_rows 问题。抱歉,我一个人问了多个问题。我认为这可能会让人们感到困惑。

编辑/回答
使用 Node.js 从 couchdb 检索所有文档

这篇文章对我帮助很大!它解决了我遇到的许多问题。对于未来需要帮助的人。

db.view就是我要找的!谢谢!

4

1 回答 1

0

您正在查询数据库统计信息,而不是数据库文档。当您想要检索特定文档时,这是您使用驱动程序的方式:

var roxanne = nano.use('roxanne');
roxanne.get('document_id', function(err, body) {
    console.log(err, body);
});

请注意,roxanne.get而不是nano.get.

如果您想获取所有文件,

var roxanne = nano.use('roxanne');
roxanne.bulk('_all_docs', {include_docs: true}, function(err, docs) {
    console.log(err, docs);
});
于 2013-08-08T16:44:13.227 回答