Gun.js为什么会出现错误“您没有要保存到错误的持久层”

账单

我正在尝试将gun.js安装为node.js项目,已通过dotenv配置了Amazon S3存储桶,并且尝试添加data.json文件,但仍然无法获取gun.js来保存本地文件或S3存储桶。

我知道枪支的早期发展,但是我感觉到我缺少明显的东西。

我期望在他的本地文件系统或S3存储桶中找到一个.json文件,但我都找不到。

require('dotenv').config();
var Gun = require('gun');
var gun = Gun({
    file: 'data.json', // local testing and development
    s3: {        
     key: process.env.AWS_KEY, // AWS Access Key
     secret: process.env.AWS_SECRET, // AWS Secret Token
     bucket: process.env.AWS_BUCKET // The bucket you want to save into
    }
});

gun.put({ hello: 'world' }).key('my/first/data');
市场

@bill现在才注意到这一点,对不起您的答复。感谢@ paul-w在今天早些时候通知我有关此问题以及他的回复。

此问题和答案假定您正在运行比v0.4.x更早的版本!

如果您使用的是NodeJS并收到错误消息“You have no persistence layer to save to”,则意味着未安装默认存储驱动器(S3,file.js)或未将其停用-这是不寻常的,因为它会自动发生。

  1. 尝试通过npm install gun本地NodeJS项目目录(而不是git克隆或复制粘贴)安装gun(还是?)

考虑到您所解释的上下文,我只能猜测您可能已经将枪支(如gun.js文件)复制/移动到了项目中。浏览器将仅处理单个文件,但NodeJS需要更多-它需要S3 / file.js模块,如果与npm一起安装或正确克隆了git,则将包含这些模块。

也是不太可能的(因为您的代码没有显示此内容),如果您碰巧(这很糟糕Gun({wire: {put: null, get: null}})(或类似的东西),则有意破坏持久性驱动程序。

如果您在浏览器中并且遇到错误(并且假设您没有像上一段中那样覆盖持久性驱动程序),则可能是由于某些奇怪的情况,例如您使用的是旧版本的IE或没有使用IE的浏览器有JSON支持。同样,所有这些事情都是不太可能的,但是我只是想变得全面。

注意:以上内容适用于标题中的问题。但是,您的实际问题不是询问错误,而是询问data.json在S3或S3中看不到数据在下面回答。

对@ paul-w的关注程度更高。如果使用的是S3,则file.js模块(data.json)会自动停用。如果您正在使用file.js模块(data.json),则不会激活S3。如@ paul-w所述,v0.4.x将轻松支持同时拥有多个存储引擎。但是,您应该至少在一个或另一个中查看数据-除非遇到“无持久层”错误,否则在这种情况下您将不会在任何地方看到数据,因为没有任何持久性!但是,默认情况下,gun会默认包含默认的持久层(除非安装不正确,或者您明确覆盖了它们-都是不寻常的事情)。

我希望这回答了你的问题。抱歉,直到现在我还没有看到它。请让我知道这是否可行,并通过https://gitter.im/amark/gun加入对话感谢您帮助启动stackoverflow问题!我们需要更多这些!

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

Related 相关文章

热门标签

归档