背景
node server 提供 ipfs 文件上传服务
源码
const {create, globSource} = require('ipfs-http-client');
this.ipfs = create({host: host, port: port, protocal: protocal});
async addAll(files) {
let addOptions = {
pin: true,
// wrapWithDirectory: true,
timeout: 10000
};
try {let res = []
for await (const result of this.ipfs.addAll(files, addOptions)) {
res.push({
path: result.path,
size: result.size
})
}
return res
} catch (error) {throw error}
}
调用 addAll()
办法提醒谬误
ReferenceError: AbortController is not defined
起因
AbortController
对 node 版本有要求,要求 v16.xx.xx,所以只须要降级 node 版本即可。
降级 node
服务器零碎是 centos,能够抉择 node 版本管理工具 n
装置 n
npm install -g n
下载 node
n 10.16.0 // 指定版本下载
n lts // 最新版本下载
切换 node 版本
n
ο node/8.11.3
node/10.15.0
node/v16.8.0
查看以后版本
node -v
如果这里发现还是原来的版本,没有降级胜利有可能是本地 node 指向问题,n
装置的源文件默认装置在 /usr/local/bin
上面,先查看下以后指向
which node
如果没有指向 /usr/local/bin
,批改本地配置
vim ~/.bash_profile
N_PROFIX=/usr/local
PATH=$N_PROFIX/bin:$PATH
export PATH
查看以后版本
node -v
v16.8.0
后果
降级完结后,重新安装依赖启动服务,再次调用 addAll
办法,调用胜利。
总结
从遇到问题到解决问题,破费工夫次要在降级 node 版本而不是定位问题。遇到这个问题不能阐明什么,毕竟问题切实太多纯靠积攒,然而在 node 生态工具的应用上还是十分欠缺破费了不少工夫,后续能够在这方面深刻一点。