安装及初始化
- 在 leancloud 创建应用
- 安装 LeanCloud SDK
npm install leancloud-storage --save
- 在HTML中引入
<script src = "./node_modules/leancloud-storage/dist/av.js"></script>
- 初始化
<script>
var APP_ID = 'xxxxxxx';
var APP_KEY = 'xxxx';
AV.init({
appId: APP_ID,
appKey: APP_KEY
});
console.log(AV)
</script>
- 验证 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 已经正确地执行了上述代码,安装完毕。

注册、登录和登出
注册
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) {
});
打印出来的结果:

关于注册的部分在 数据存储开发指南 -- 用户 -- 注册这个版块里
登录
AV.User.logIn('1234', '1234').then(function (loggedInUser) {
console.log(loggedInUser);
}, function (error) {
});

注意看attributes、id和createdAt这几项。
登出
AV.User.logOut();
// 现在的 currentUser 是 null 了
var currentUser = AV.User.current();

用户与用户数据
使用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('保存失败');
});

查询我们存进去的对象
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 权限管理开发指南
错误码详解
网友评论