#javascript #node.js #ipfs #js-ipfs
Вопрос:
Я изучаю ipfs js на основе учебника, но пока я следую, у меня возникают проблемы с вводом узла main.js в терминале вот так:
/Users/username/Documents/coding/ipfs-test/node_modules/lock-me/src/unix.js:9
(cb) => fs.stat(name, (err, stats) => {
^
TypeError: fs.stat is not a function
at waterfall (/Users/username/Documents/coding/ipfs-test/node_modules/lock-me/src/unix.js:9:16)
at nextTask (/Users/username/Documents/coding/ipfs-test/node_modules/async/waterfall.js:16:14)
at exports.default (/Users/username/Documents/coding/ipfs-test/node_modules/async/waterfall.js:26:5)
at unixLock (/Users/username/Documents/coding/ipfs-test/node_modules/lock-me/src/unix.js:8:3)
at lock (/Users/username/Documents/coding/ipfs-test/node_modules/lock-me/src/index.js:53:5)
at Object.exports.lock (/Users/username/Documents/coding/ipfs-test/node_modules/ipfs-repo/src/lock.js:23:3)
at IpfsRepo._openLock (/Users/username/Documents/coding/ipfs-test/node_modules/ipfs-repo/src/index.js:168:18)
at waterfall (/Users/username/Documents/coding/ipfs-test/node_modules/ipfs-repo/src/index.js:96:20)
Это код, написанный на main.js:
const IPFS = require('ipfs');
console.log("Imported IPFS");
const mynode = new IPFS();
console.log("Starting Server");
mynode.on('ready', async () => {
console.log("Server Started");
const version = await mynode.version();
console.log(version.version);
});
Информация:
Я использую node js версии 8.13.0,
IPFS JS, который я использую, имеет версию 0.32.3,
С ОС macOS Bigsur 11.4
Есть ли решение этой проблемы? Спасибо ^^
Ответ №1:
Я не уверен, какому учебнику вы следуете, но вот минимальный пример запуска вашего кода с использованием js-ipfs 0.55.3:
const IPFS = require('ipfs');
console.log("Imported IPFS");
async function run() {
console.log("Starting Server");
const mynode = await IPFS.create();
console.log("Server Started");
const version = await mynode.version();
console.log(version.version);
}
run();
Комментарии:
1. Спасибо, что помогли мне, метод, который вы дали, действительно отлично работал, если он был запущен с последней версией node js с ipfs js версии 0.55.3. Однако для Node js версии 8.13.0 и IPFS JS версии 0.32.3 это не работает. Появляется такая ошибка:
Imported IPFS Starting Server (node:25730) UnhandledPromiseRejectionWarning: TypeError: IPFS.create is not a function
есть ли для этого решение?2. @AdamFaturahman есть ли способ избежать использования такой старой версии js-ipfs? Трудно поддерживать гораздо более старые версии программного обеспечения (особенно до версии 1.0), я обычно рекомендую людям использовать последнюю версию js-ipfs везде, где это возможно. Пожалуйста, дайте мне знать, если это невозможно, и почему :).