Parse 使用教程之四

在之前的文章中简单介绍了 parse-server parse-dashboard 的安装和基本使用方法,如果还没看过的同学可以查看下面的文章链接预习一下哦

  1. 快速上手基于 parse-server 的 Node.js 服务器使用篇之一
  2. 快速上手基于 parse-server 的 Node.js 服务器使用篇之二
  3. 使用 Parse 来管理你的 MongoDB 数据库

再本章节中我们主要学习一下如何使用 Parse 中的 SDK 使用方法,我再日常开发中使用 Node.js 比较多,因此 SDK 的示例就使用 JavaScript 来讲解

什么是 SDK

SDK(Software Development Kit)全称是软件开发工具包,也就是提供软件 API 接口或者使用方法的工具封装,能够让我们简单的使用 SDK 中暴露出来的方法进行日常的软件开发。

比如在小程序开发中如果使用图片上传的功能,我们就可以在项目中集成七牛云、又拍云或者腾讯云的文件存储 OSS SDK 来使用

JavaScript 中的 SDK

在 JavaScript 中使用 Parse,官方团队提供了 JavaScript SDK,传送门。在 SDK 中,为我们提供了全局的 Parse 对象,对象中封装了 parse-server 中的数据的操作方式,下面我们来看看如何在项目中使用 Parse

配置安装

  1. 在项目文件中安装 parse 模块

    yarn add parse
    
  2. 在项目的根目录中添加 parse.js

    touch parse.js
    
  3. parse.js 中使用安装的 parse 模块

    parse 模块的执行环境分为了浏览器环境和 Node.js 环境,这是由于不同的运行环境中,parse 的权限操作不一样,因此我们在引用 parse 的时候需要引入不同的路径

    模块引入

    浏览器环境

    const Parse = require('parse');
    

    Node.js环境

    const Parse = require('parse/node');
    

    配置

    引入模块之后需要添加 parse 的服务器配置,配置的格式如下:

    Parse.initialize(APPID, JAVASCRIPT_KEY, MASTER_KEY)
    

    其中:

    • APPIDparse-server 中的应用 ID
    • JAVASCRIPT_KEYparse-server 中的 JavaScript 秘钥
    • MASTER_KEY 是 parse-server 中的超级管理员秘钥,请注意该秘钥只能在 Node.js 环境(服务器中)中使用,该秘钥应该避免暴露

    然后还需要配置 parse-server 的服务地址

    Parse.serverURL = 'http://localhost:1337/parse'
    

    添加 serverURL 的时候如果 parse-server 设置了服务挂载地址则一定不能缺少。

    在添加配置之后,作为可选项我们可以把 Parse 对象挂载在浏览器环境中的 window 对象中,或者在 Node.js 环境中挂载在 global 对象中,这样我们就不需要每次都加载 parse.js 了。

    挂载对象

    浏览器环境中

    window.Parse = Parse
    

    Node.js 环境中

    global.Parse = Parse
    

    而笔者在开发中,通常使用的是 Node.js 环境中,而且 Node.js 的模块默认开启了加载缓存,因此经常在需要的地方引入 parse.js

    下面是完整的 parse.js 文件内容

    const Parse = require('parse/node');
    
    Parse.initialize(process.env.PARSE_APPID, process.env.PARSE_JAVASCRIPT_KEY, process.env.PARSE_MASTER_KEY);
    Parse.serverURL = process.env.PARSE_SERVER_URL;
    
    module.exports = Parse;
    

    为了避免多次引入项目配置,我将所有的配置放在了环境变量中,以 dotenv 的方式来引入,想要了解以文件方式引入配置的同学可以看这篇文章

使用

在 SDK 中,开发者贴心的为我们分为了一下几个 Parse 的子对象,方便我们的使用,并且所有的 SDK 对象均返回 Promise 的结果,因此我们可以使用 try catch 来捕获错误。

下面是 SDK 中内置的对象:

  • Parse :暴露的顶级对象
  • Parse.Queryparse-server中的查询 SDK,相当于 GET 的请求
  • Parse.Objectparse-server 中的数据对象,相当于 POSTPUT 请求
  • ParseACLparse-server 中的权限控制对象,是 Parse.Object 的子对象继承
  • ParseFileparse-server 中的大文件管理对象,在 MongoDBGridFS 引擎存储的 raw 文件
  • ParseUserparse-server 中的用户管理对象,是 Parse.Object 的子对象继承
  • ParseRoleparse-server 中的角色组管理对象,是 Parse.Object 的子对象继承

还有几个不常用的内置对象,可以查看 SDK 的文档地址

下面我们以常用的 Parse.QueryParse.Object为例,介绍一下使用方法:

Parse.Query

示例 1:

查询一个列表中的数据

let result;
try {
	result = await new Parse.Query('Game').find();
} catch (error) {
	return console.error(error);
}
console.log(result);

示例 2:

通过objectId 查询

let result;
try {
	result = await new Parse.Query('Game').get(objectId);
} catch (error) {
	return console.error(error);
}
console.log(result);

示例 3:

查询的时候分页,并对返回的结果进行排序

let result;
try {
	result = await new Parse.Query('Game').skip(10).limit(10).find();
} catch (error) {
	return console.error(error);
}
console.log(result);

代码块中的 skiplimit 是封装过的查询特定返回的数据

Parse.Object

示例 1:

Game 表中创建一条数据

let result;
try {
	result = await new Parse.Object('Game').save({
    "score": 1337,
    "playerName": "Sean Plott",
    "cheatMode": false,
    "createdAt": "2011-08-20T02:06:57.931Z",
    "updatedAt": "2011-08-20T02:06:57.931Z",
    "objectId": "Ed1nuqPvcm"
  });
} catch (error) {
	return console.error(error);
}
console.log(result);

通过使用 save 方法创建了一条数据

示例 2:

更改一条数据

使用 SDK 更改对象,需要进行 3 步操作:先查询对象,然后进行更改操作,最后在执行保存查询

// Query a game scope
let game;
try {
	result = await new Parse.Query('Game').first();
} catch (error) {
	return console.error(error);
}

// Change game score
game.set('score', 85);

let result;
try {
	result = await game.save();
} catch (error) {
	return console.error(error);
}
console.log(result);

从上面的代码中可以看到使用了 set 方法,这个是 Parse.Object 中的更改操作,能够更改指定字段的值。然后将更改过的对象保存到 parse-server

示例 3:

修改用户的用户名

// Query a game scope
let user;
try {
	result = await new Parse.Query('_User').first();
} catch (error) {
	return console.error(error);
}

// Change game score
user.set('username', 'mengj');

let result;
try {
	result = await user.save(null, {
    useMasterKey: true
	});
} catch (error) {
	return console.error(error);
}
console.log(result);

需要注意的是由于 User Role 等数据表是内置的并且属于写入限制的数据,因此我们需要在进行新建或者保存的时候需要使用到 masterKey,在 save 方法的第二个参数使用 { useMasterKey: true } 来表示强制写入操作。

更多的示例和使用方法可以查看 SDK 的文档哦,虽然是英文,但是很好理解,传送门

更多内容

更多的内容请关注GitHub@hom,知乎@孟太白,或者关注我的公众号@全栈开发师。分享相关计算机系统、网络和服务器的开发,学到老,写到老,生命不停,编程不止。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
JSqlParser是一个SQL语句解析器,它可以将SQL语句转换为Java对象,以便进行进一步的操作。你可以在GitHub上找到JSqlParser的地址:https://github.com/JSQLParser/JSqlParser。该工具包支持常用的数据库,如Oracle,SqlServer,MySQL和PostgreSQL。 关于JSqlParser的使用教程,以下是一个简单的示例: 1. 首先,你需要在项目中引入JSqlParser的依赖。 2. 创建一个SQLParser的实例,并使用parse方法将SQL语句解析为一个Statement对象。 3. 可以根据不同的SQL类型,比如SELECT、INSERT、UPDATE或DELETE,使用不同的Statement子类进行操作。 4. 对于SELECT语句,你可以使用Select对象来获取查询的表、列、条件等信息。可以通过getSelectBody方法获取SELECT语句的主体,然后进一步处理。 5. 对于INSERT语句,你可以使用Insert对象来获取插入的表名、列名和值。 6. 对于UPDATE语句,你可以使用Update对象来获取更新的表名、列名和更新的值。 7. 对于DELETE语句,你可以使用Delete对象来获取删除的表名和条件。 8. 可以根据需要,进一步处理Statement对象,比如修改表名、列名或添加条件等。 9. 最后,你可以将修改后的Statement对象转换回SQL语句。 这只是一个简单的JSqlParser使用教程的概述,你可以根据具体的需求和情况进行更加详细的学习和使用。希望对你有帮助!<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* [JSqlParser入门教程之常用示例](https://blog.csdn.net/hou_ge/article/details/126953645)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *3* [Jsqlparser](https://blog.csdn.net/qq_16992475/article/details/121949134)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

mrmengj

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值