Database Operations
执行无服务器数据库操作
介绍
本节解释如何通过 Back4app 在 JavaScript 环境中实现 CRUD(创建、读取、更新和删除)操作。 它还提供代码片段和一个在线环境,以便您执行和测试代码,而无需本地设置。
有关 Parse SDK 的更多信息,请访问 Parse JavaScript SDK API 参考 和 Parse JavaScript SDK 开源文档.
先决条件
除了具备基本的 JavaScript 知识外,没有其他额外要求。 可选: 要使用您自己的应用程序完成本教程,您需要:
- 在 Back4app 上创建并配置的 JavaScript 应用程序。
1 - 设置环境
本指南使用 JSbin 平台作为代码编辑器。 使用起来非常简单,您只需打开其主页并点击 HTML, JavaScript 和 控制台 按钮:

开始编码的第一步是包含 Parse API 并添加您的应用程序密钥。
在本教程中,创建了一个公共 Back4app 应用程序,以便您可以在数据库中检查您的更改,而无需创建自己的应用程序。
可选: 要检查此示例的 Parse 数据库,您需要创建自己的应用程序并访问 Parse Dashboard 选项。
要在您的应用程序中包含 Parse API,请在 HTML 的头标签中添加以下代码行:
<script type="text/javascript" src="https://unpkg.com/parse/dist/parse.min.js"></script>然后在 JavaScript 文件的开头添加您的凭据。默认密钥与我们的公共应用程序相关。
//Paste your Application Key and JavaScript Key, respectively
Parse.initialize("Your-Application-Id", "Your-Javascript-Key");
Parse.serverURL = "https://parseapi.back4app.com/";在本教程中,我们将基于一个具有名称和年龄字段的宠物类构建 CRUD 操作 ,其中名称是字符串,年龄是数字。因此,代码应该首先创建一个宠物类的子类,以便稍后在我们的函数中使用,如下所示:
var Pet = Parse.Object.extend("Pet");所有基本操作都需要用户说明所需宠物的名称。这样,创建一个全局变量“textName”。创建一个“textAge”变量也是个好主意,它将在创建和更新方法中使用。
var textName = "myName";
var textAge = 10;2 - 创建
该 创建 函数将使用您在“textName”和“textAge”变量中提供的名称和年龄创建一个新的宠物。
要构建该函数,只需按照以下步骤操作:
- 使用命令创建 Parse 的宠物类的新实例
- 使用 设置 函数为该对象设置参数。
- 调用 保存 函数,这将有效地将宠物注册到您的数据库中,在Parse Dashboard。
您可以打开 Back4app JavaScript 创建函数以查看已实现的代码。
该 创建 函数的代码如下所示:
create();
function create() {
mypet = new Pet();
mypet.set("name", textName);
mypet.set("agePet", textAge);
mypet.save().then(function(pet){
console.log('Pet created successful with name: ' + pet.get("name") + ' and age: ' + pet.get("agePet"));
}).catch(function(error){
console.log('Error: ' + error.message);
});
}要测试它,请将此代码片段粘贴到 JSbin, 点击控制台部分的 运行 按钮并等待输出。 它应该打印出宠物已成功创建的信息。 要确认新对象是否在数据库中,您可以访问 Parse Dashboard,或者您可以编写 读取 函数。
3 - 读取
读取 函数负责查询数据库并返回与您的搜索条件匹配的对象。它也可以用来检查对象的存在。 以下是构建您自己的 读取 函数的逐步指南:
- 创建 Parse 的 Query 类的实例。
- 执行查询的搜索方法。本教程将使用 query.first 来获取仅与您的条件匹配的第一个元素。
- 如果操作成功,将返回一个宠物对象。如果未找到对象,返回的对象将具有 未定义 的值。
您可以打开 Back4app JavaScript 读取函数 来查看已经实现的代码。
以下是 读取 函数的代码:
read();
function read() {
query = new Parse.Query(Pet);
query.equalTo("name", textName);
query.first().then(function(pet){
if(pet){
console.log('Pet found successful with name: ' + pet.get("name") + ' and age: ' + pet.get("agePet"));
} else {
console.log("Nothing found, please try again");
}
}).catch(function(error){
console.log("Error: " + error.code + " " + error.message);
});
}要测试 读取 函数,将代码片段粘贴到您的 JSBin JavaScript 文件中。当代码运行时,它将打印找到的宠物的年龄(如果找到的话),否则将打印没有找到宠物的信息。
如果在测试时打印的年龄与您的对象的年龄不符,这意味着有 更多同名的对象,但您的查询只返回其中一个。因此,为了真正测试 读取 函数,请创建一个其他名称的对象,一个尚未被创建的对象,然后运行该函数,它将正确打印该对象的年龄。
4 - 更新
对于 更新 函数,宠物作为参数传递,函数将其年龄更改为您在 “textAge” 变量中提供的年龄。为了找到将被传递的宠物,我们使用我们 读取 函数的修改版本。
以下是制作您自己的 更新 函数的步骤:
- 编写一个名为 readThenUpdate 的修改版读取函数,当成功找到宠物时调用 更新 函数。
- 在 更新 函数中,使用 设置 函数来修改您宠物的参数。
- 调用 保存 函数以将此宠物的更改推送到数据库。
您可以打开 Back4app JavaScript 更新函数 来查看已经实现的代码。
这是 readThenUpdate 函数和 update 函数的代码:
readThenUpdate();
function readThenUpdate() {
query = new Parse.Query(Pet);
query.equalTo("name", textName);
query.first().then(function (pet) {
if (pet) {
console.log('Pet found with name: ' + pet.get("name") + ' and age: ' + pet.get("agePet"));
update(pet);
} else {
console.log("Nothing found, please try again");
}
}).catch(function (error) {
console.log("Error: " + error.code + " " + error.message);
});
}
function update(foundPet) {
textName = "myNameUpdated";
textAge = 20;
console.log(textAge);
foundPet.set('name', textName);
foundPet.set('agePet', textAge);
foundPet.save().then(function (pet) {
console.log('Pet updated! Name: ' + pet.get("name") + ' and new age: ' + pet.get("agePet"));
}).catch(function(error) {
console.log('Error: ' + error.message);
});
}要确认 update 函数是否正常工作,请将上面的代码粘贴到 JSBin 页面中的 JavaScript 文件中。 使用一个不常见的名称来创建你的对象,以避免与其他用户冲突,然后按照以下步骤操作: 1. 创建一个你想要的名称的对象。 2. 检查对象是否已使用你的 read 函数创建。 3. 调用你在本主题中创建的 readThenUpdate 函数,使用与原始不同的年龄。 4. 通过再次调用你的 read 函数检查宠物的年龄是否已更改。
5 - 删除
该 删除 函数会删除由 读取 函数接收到的宠物。它是一个不可逆的操作,这意味着在使用时要小心,特别是因为你的 读取 函数可能会返回比你实际想要删除的更多对象。因此,建议一次只删除一个对象。编写你自己的 删除 函数的步骤如下:
- 在你的 “读取” 函数成功结束时 (readThenDelete 在这个例子中),调用 删除 函数.
- 在 deletePet 函数中,调用接收到的对象 “foundPet” 的销毁方法.
你可以打开 Back4app JavaScript 删除函数 来查看已经实现的代码.
这是 readThenDelete 函数和 deletePet 函数的代码:
readThenDelete();
function readThenDelete() {
query = new Parse.Query(Pet);
query.equalTo("name", textName);
query.first().then(function (pet) {
if (pet) {
console.log('Pet found with name: ' + pet.get("name") + ' and age: ' + pet.get("agePet"));
deletePet(pet);
} else {
console.log("Nothing found, please try again");
return null;
}
}).catch(function (error) {
console.log("Error: " + error.code + " " + error.message);
return null;
});
}
function deletePet(foundPet) {
foundPet.destroy().then(function(response) {
console.log('Pet '+ foundPet.get("name") + ' erased successfully');
}).catch(function(response, error) {
console.log('Error: '+ error.message);
});
}为了测试,建议创建一个不寻常名称的对象,就像其他函数一样,以避免与其他用户的对象冲突。 只需将代码片段粘贴到 JSBin 中,并使用您的对象名称和将要删除的对象运行代码。 然后,您可以调用您的 read 函数以确认没有具有该名称的对象。
如果读取返回一个对象,而它不应该,这可能意味着您有多个具有相同名称的对象,并且它返回了其中一个作为 delete 函数只删除一个对象。 您可以通过访问您的 Parse Dashboard 来检查您的对象。
完成了!
到此为止,您已经学习了如何使用 JavaScript 进行基本的 CRUD 操作。