leancloud

安装及初始化

  1. 在 leancloud 创建应用
  2. 安装 LeanCloud SDK

npm install leancloud-storage --save

  1. 在HTML中引入 <script src = "./node_modules/leancloud-storage/dist/av.js"></script>
  2. 初始化
<script>
    var APP_ID = 'xxxxxxx';
    var APP_KEY = 'xxxx';

    AV.init({
        appId: APP_ID,
        appKey: APP_KEY
    });
    console.log(AV)
</script>

  1. 验证 LeanCloud SDK 安装成功
  • 首先,确认本地网络环境是可以访问 LeanCloud 服务器的,可以执行以下命令行:

    ping "dwxr3lun.api.lncld.net"

  • 然后在项目中编写如下测试代码:

var TestObject = AV.Object.extend('TestObject');
var testObject = new TestObject();
testObject.save({
  words: 'Hello World!'
}).then(function(object) {
  alert('LeanCloud Rocks!');
})

然后打开 控制台 > 存储 > 数据 > TestObject,如果看到以下内容,说明 SDK 已经正确地执行了上述代码,安装完毕。

image.png

注册、登录和登出

注册
let APP_ID = 'fubRKob5ombKpfC0jqcYo4d5-gzGzoHsz';
let APP_KEY = 'LL25S9QYDBzrNtUAqPwbpawD';

AV.init({
    appId: APP_ID,
    appKey: APP_KEY
});
 // 新建 AVUser 对象实例
  var user = new AV.User();
  // 设置用户名
  user.setUsername('1234');
  // 设置密码
  user.setPassword('1234');
  // 设置邮箱
//   user.setEmail('tom@leancloud.cn'); //这次暂时没用到
  user.signUp().then(function (loggedInUser) {
      console.log(loggedInUser);  // 打印出来的结果见下图
  }, function (error) {
  });

打印出来的结果:


image.png

关于注册的部分在 数据存储开发指南 -- 用户 -- 注册这个版块里

登录
AV.User.logIn('1234', '1234').then(function (loggedInUser) {
    console.log(loggedInUser);
  }, function (error) {
  });
image.png

注意看attributes、id和createdAt这几项。

登出
  AV.User.logOut();
  // 现在的 currentUser 是 null 了
  var currentUser = AV.User.current();
image.png

用户与用户数据

使用LeanCloud来保存数据
let TodoFolder = AV.Object.extend('TodoFolder'); // 新建对象 
let todoFolder = new TodoFolder(); // 设置名称
todoFolder.set('content',dataStr); // dataStr 就是我们要保存的数据
todoFolder.save().then(function (todo) {
     console.log(todo);
     }, function (error) {
    console.error('保存失败');
      });
用户与用户数据绑定

假设要达到这样的效果:

  • 用户创建的活动(比如一个todo)保存在用户名下
  • 只有这些活动所属的用户才能读写这些内容

我们可以使用 LeanCloud 提供的 ACL 功能来实现:

  • 添加访问控制:
let acl = new AV.ACL();
acl.setReadAccess(AV.User.current(),true); // 只有这个用户可读
acl.setWriteAccess(AV.User.current(),true); // 只有这个用户可写
....
todoFolder.setACL(acl);  // 将 ACL 实例赋予 todoFolder 对象, 添加访问控制

于是代码变成了这样:

let TodoFolder = AV.Object.extend('TodoFolder'); // 新建对象 
let todoFolder = new TodoFolder(); // 设置名称
let acl = new AV.ACL();
acl.setReadAccess(AV.User.current(),true); // 只有这个用户可读
acl.setWriteAccess(AV.User.current(),true); // 只有这个用户可写
todoFolder.set('content',dataStr); // dataStr 就是我们要保存的数据
TodoFolder.setACL(acl);  // 将 ACL 实例赋予 todoFolder 对象, 添加访问控制
todoFolder.save().then(function (todo) {
     console.log(todo);
     }, function (error) {
    console.error('保存失败');
      });
image.png
查询我们存进去的对象
    let query = new AV.Query('TodoFolder');
            query.find().then(function(todos) {
                console.log(todos);
            }, function (error) {
                console.log('error')
            });

文档在这里 → 批量操作

更新数据
            let str = JSON.stringify(this.todoList);
            let todoFolder = AV.Object.createWithoutData('TodoFolder', this.todoList.id);
            todoFolder.set('content', str);
            console.log('这是UpdateTODO');
            todoFolder.save().then(() => {
                console.log('更新成功')
错误码

见 : 错误码详解

参考资料:
JavaScript SDK 安装指南
数据存储开发指南 · JavaScript
ACL 权限管理开发指南
错误码详解

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容