2017-02-08 9 views
1

Я пытаюсь сохранить тело ответа обратного вызова в MongoDB. В частности, я выполняю /ipfs/add как этот метод метеора в файле «main.js-server».Неисправность сбора ответа обратного вызова из ipfs.util.addFromFS

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.

Моя конечная цель состоит в том, чтобы иметь таблицу, в которой первый столбец представляет собой список имен файлов, второй столбец для размера файла, третий с этим хешем из неопределенного объекта ответа обратного вызова.

Извините заранее, если я разместил это в неправильном месте или допустил любые другие ошибки новобранец. Я считаю, что это мой первый вопрос по обмену стеками.

Благодарим вас за помощь!

+0

Я также хотел бы добавить, что, поскольку это мой первый вопрос, я более чем открыт, чтобы вернуться к тому, как я представил этот вопрос. Название фразы. общая презентация и легкость понимания, если она была хорошо сообщена или нет. –

ответ

0

Итак, через несколько дней я выяснил свою проблему, и если кому-то нужна помощь с подобной проблемой, это должно сработать для вас. Просто имейте в виду, что IPFS находится в альфа, и их документация и 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 на соответствующий файл.