尝试在浏览器中获取块堆栈用户数据

时间:2019-06-06 17:28:19

标签: javascript node.js blockstack

我正在创建一个使用Blockstack的网络应用,但是我在使用Javascript时遇到了一些问题,并且了解如何在浏览器中使用Blockstack。

每当我尝试获取Blockstack用户的ID或用户名时:

var bsId = blockstack.loadUserData(profile).username;
console.log(bsId);

我收到此错误:

Uncaught ReferenceError: profile is not defined

但是当我直接在开发者控制台中运行代码时,它可以正常工作并返回用户名。我很好奇自己在做错什么,这也是我第一次与Blockstack打交道。

这是一个使用Blockstack,Express和Heroku的应用程序。 我查找了此错误,但没有发现太多,并阅读了Blockstack的文档。

var bsId = blockstack.loadUserData(profile).username;
console.log(bsId);

返回Blockstack用户名或所选信息。

1 个答案:

答案 0 :(得分:0)

我认为您的问题是您通过以下方式访问个人资料属性:

var bsId = blockstack.loadUserData(profile).username;

根据documentation,loadUserData()返回一个userData()对象,其参数类似于配置文件&&用户名(以及其他)。相反,您应该使用:

var profile = blockstack.loadUserData().profile;  //Get the profile
var username = blockstack.loadUserData().username; //Get the username directly

您还可以通过添加以下内容来检查是否正确设置了CORS:

config.headers = {
    "Access-Control-Allow-Origin": "*",
    "Access-Control-Allow-Methods": "GET,PUT,POST,DELETE",
    "Access-Control-Allow-Headers": "Content-Type"
}

这里有更多示例:https://github.com/blockstack/blockstack-browser/blob/master/docs/multi-player-storage.md

希望有帮助!