找不到模块:无法解析‘D:\PRO\src\Components’中的‘IPFS-http-Client’

fnatzsnv  于 2022-09-21  发布在  Node.js
关注(0)|答案(3)|浏览(246)

我正在尝试使用node-js中的网站将文件发送到IPFS。我使用的是IPFS-http-Client模块。当我尝试使用REQUIRED访问该模块时,不断收到以下错误:

1.找不到模块:无法在命令提示符下解析‘D:\PRO\src\Components’中的‘ipps-http-client’。

以下是网站中的错误消息:

1.编译失败。找不到/src/Components/App.js模块:无法解析‘D:\PRO\src\Components’中的‘IPFS-http-CLIENT’。此错误发生在生成期间,无法解除。

我使用官方文档中指定的命令安装了模块-“NPM安装--保存IPFS-http-Client”。我可以在我的依赖项中看到该模块,但仍然收到此错误。我对这一切完全是个新手。如果能帮上一点忙,我们将不胜感激。先谢谢你。

这是我访问该模块的方式:


***import React, { Component } from 'react'; 

import logo from '../logo.png'; 
import './App.css'; 

const ipfsClient = require('ipfs-http-client'); 
const projectId = '*****'; 
const projectSecret = '***'; 
const auth =
    'Basic ' + Buffer.from(projectId + ':' + projectSecret).toString('base64'); 
const ipfs = ipfsClient.create({
    host: 'ipfs.infura.io',
    port: 5001,
    protocol: 'https',
    headers: {
        authorization: auth,
    }, 
}); 
class App extends Component {   
    constructor(props) {    
      super(props);
      this.state={
        buffer: null
      };   
    }   
captureFile=(event) => {
    event.preventDefault()
    const file = event.target.files[0]
    const reader = new window.FileReader() 
    reader.readAsArrayBuffer(file)
    reader.onloadend=() => {
      this.setState({buffer: Buffer(reader.result) }) 
    }
    console.log(event.target.files)   
}   
onSubmit = (event) => {
    event.preventDefault()
    console.log("Submitting the form...")
       ipfs.add(this.state.buffer, (error,result) => {
         console.log('Ipfs result', result)
         if(error){
           console.error(error)
           return 
         }
       })   
}***
mzaanser

mzaanser1#

试着用以前的版本--我刚试过。执行以下操作:

npm uninstall --save ipfs-http-client
npm i --save ipfs-http-client@33.1.1

我不知道更新版本有什么问题,但这是目前的一个快速修复。并将使您的代码运行

628mspwn

628mspwn2#

按如下方式导入:

const ipfsClient = require('ipfs-http-client');

然后创建连接:

const ipfs = ipfsClient.create( https://ipfs.infura.io:5001);

要上载:

const uploadFile = await ipfs.add({ content: file });

w1e3prcc

w1e3prcc3#

如果您查看npm website上的包,您将看到较新的版本导入create函数,如下所示:

import { create } from 'ipfs-http-client'

使用它,您只需将代码更改为

import React, { Component } from 'react'; 
import logo from '../logo.png'; 
import './App.css';
import { create } from 'ipfs-http-client';

const projectId = '*****';
const projectSecret = '***';
const auth =
    'Basic ' + Buffer.from(projectId + ':' + projectSecret).toString('base64');
const ipfs = create({
  host: 'ipfs.infura.io',
  port: 5001,
  protocol: 'https',
  headers: {
    authorization: auth,
  },
});
class App extends Component {
...
}

相关问题