我正在尝试在MongoDB中存储回调响应的主体。更具体地说,我正在“ main.js-服务器”文件上将/ipfs/add作为此流星方法执行。

ipfsAdd: function(){
    var result = ipfs.util.addFromFs('/home/eruguru/CreativeCommonPlace/server/landscape.jpg');
    return (result);
},


然后,我将其导入到此流星js模板中,该模板在单击HTML按钮时执行。

Template.ipfsAdd.events({
    'click .ipfsButton': function(event){
        Meteor.call("ipfsAdd", function(err, res)
        {console.log(err, res)});
    }
})


我知道函数在我作为未定义对象的一部分在控制台中获得预期输出时起作用

{
    hash: "QmW1xtbLAmS9TBfmeHnhNC7cavLEcxDPHa2MfJtRSmy8dC",
    path: "landscape.jpg",
    size: 132713
}


因此,我想我遇到的问题是如何将该对象定义为变量,然后将其收集为MongoDB的一部分。

我的最终目标是要有一个表,其中第一列是文件名列表,第二列是文件大小,第三列是未定义的回调响应对象的哈希值。

如果我在不正确的地方发布此帖子或犯了其他任何菜鸟错误,请提前致歉。我相信这是我关于堆栈交换的第一个问题。

非常感谢您的帮助!

最佳答案

因此,几天后,我发现了自己的问题,如果有人遇到类似问题需要帮助,这应该对您有用。请记住,IPFS处于alpha状态,其文档和API随时可能更改。

将鼠标悬停在“ res” console.log输出中的字段(哈希,路径和大小)上之后,我注意到弹出了显示“ [“ 0”]。hash”的信息。因此,我需要修改Template.ipfsAdd.events脚本。

Template.ipfsAdd.events({
  'click .ipfsButton': function(event){
    Meteor.call("ipfsAdd",
    function(err, res){
      //console.log(err, res)
      ListofFiles.insert({
        text: res["0"].hash,
      });
    }
    );
  }
})


其中“ ListOfFiles”是我希望添加信息的MongoDB的名称。这也适用于路径和大小字段。如果在一个ipfsAdd函数中添加多个文件,只需将res索引更改为相应的文件。

08-06 15:07