---
title: 云代码函数
slug: docs-ch/get-started/cloud-functions
description: 了解如何在 Back4app 平台上编写、部署和测试 JavaScript 云代码函数，提高应用性能。
image: https://www.back4app.com/_public/img/back4app-og.png
createdAt: 2024-01-23T19:42:51.820Z
---

**云代码** 是一个强大的工具，使您能够直接在服务器上执行JavaScript函数，为您的应用程序添加高级功能，而无需管理自己的服务器。在Back4app的环境中运行确保了可扩展性和简便性。

使用云代码，您可以：

- 自动化数据库操作以响应事件。
- 为请求创建自定义验证。
- 使用npm库将您的应用程序与外部服务集成。

## 先决条件

:::hint{type="info"}
要完成本教程，您需要在Back4app上创建一个应用程序。&#x20;请按照 [创建新应用程序教程](https://www.back4app.com/docs/get-started/new-parse-app) 了解如何在Back4app上创建应用程序。
:::

## 目标

- 从您的应用程序部署和执行云函数

## 1 - 访问您的云代码

转到您的Back4app仪表板中的 **云代码** 部分。您会找到两个主要文件夹： `cloud` 和 `public`.

![](https://api.archbee.com/api/optimize/yD3zCY-NNBBIfd0uqcfR5/QHCbDWjHiW7Wo3QrIj64o_screenshot-2024-11-15-at-152832.png)



## 2 - 编辑 main.js 文件

main.js 文件是定义您的云代码函数的地方。

![](https://api.archbee.com/api/optimize/yD3zCY-NNBBIfd0uqcfR5/8ppF7oBa6LFWR4-FpSEFd_screenshot-2024-11-15-at-153229.png)

如果需要，您可以使用以下方式从其他文件导入函数：

:::CodeblockTabs
main.js

```javascript
require('./fileName.js');
```
:::

## 3 - 创建您的第一个云代码函数

一些基本的函数示例包括：

- 一个简单的问候函数：

:::CodeblockTabs
main.js

```javascript
Parse.Cloud.define("hello", async (request) => {
    console.log("Hello from Cloud Code!");
    return "Hello from Cloud Code!";
});
```
:::

- 一个求和两个数字的函数：

```javascript
Parse.Cloud.define("sumNumbers", async (request) => {
    return request.params.number1 + request.params.number2;
});
```

## 4- 将你的代码部署到服务器

一旦您的函数准备就绪，点击 **Deploy** 按钮将它们发布到 Back4app 环境。

## 5 - 测试您的云代码函数

您可以通过 API 使用 cURL 或任何首选 SDK 直接测试您的函数。以下是调用 `hello` 函数的示例：

:::CodeblockTabs
```javascript
Parse.Cloud.run('hello')
  .then((result) => {
    console.log(result); // Output: "Hello from Cloud Code!"
  })
  .catch((error) => {
    console.error('Error:', error);
  });
```

Flutter

```dart
ParseCloudFunction function = ParseCloudFunction('hello');
ParseResponse response = await function.execute();

if (response.success) {
  print(response.result); // Output: "Hello from Cloud Code!"
} else {
  print('Error: ${response.error.message}');
}
```

Android

```java
ParseCloud.callFunctionInBackground("hello", new HashMap<>(), new FunctionCallback<Object>() {
    @Override
    public void done(Object result, ParseException e) {
        if (e == null) {
            Log.d("Cloud Code", result.toString()); // Output: "Hello from Cloud Code!"
        } else {
            Log.e("Cloud Code Error", e.getMessage());
        }
    }
});
```

iOS

```swift
ParseCloud.callFunction("hello", parameters: nil) { result in
    switch result {
    case .success(let response):
        print("Response: \(response)") // Output: "Hello from Cloud Code!"
    case .failure(let error):
        print("Error: \(error.localizedDescription)")
    }
}
```

.NET

```csharp
var result = await ParseCloud.CallFunctionAsync<string>("hello", null);
Console.WriteLine(result); // Output: "Hello from Cloud Code!"
```

```php
use Parse\ParseCloud;

try {
    $result = ParseCloud::run("hello");
    echo $result; // Output: "Hello from Cloud Code!"
} catch (Exception $ex) {
    echo "Error: " . $ex->getMessage();
}
```

REST API

```curl
curl -X POST \
-H "X-Parse-Application-Id: APPLICATION-ID" \
-H "X-Parse-REST-API-Key: REST-API-KEY" \
--data-urlencode "" \
https://parseapi.back4app.com/functions/hello
```
:::

## 6 - 附加功能

- **数据操作**: 使用特定功能创建、编辑或检索数据库中的对象，例如创建待办事项的示例:

:::CodeblockTabs
main.js

```javascript
Parse.Cloud.define("createToDo", async (request) => {
    const todo = new Parse.Object('ToDo');
    todo.set('title', request.params.title);
    todo.set('done', request.params.done);
    return await todo.save();
});
```
:::

- **高级查询**: 直接从数据库中检索信息:

:::CodeblockTabs
main.js

```javascript
Parse.Cloud.define("getListToDo", async (request) => {
    const query = new Parse.Query("ToDo");
    query.equalTo("done", true);
    query.descending("title");
    return await query.find();
});
```
:::

## 结论

使用云代码，您可以轻松构建强大且定制的解决方案。它非常适合自动化、集成和验证，并与任何技术（如Flutter、React Native或REST API）无缝协作。

如果您遇到任何问题，[Back4app支持团队](https://www.back4app.com/support)随时可以为您提供帮助。
