内容操作

以下操作都需指明操作的内容库,方法如下:

let MyContent = new BaaS.Content(contentGroupID)

参数说明

参数类型必填说明
contentGroupIDNumber内容库 ID

创建内容

创建步骤

创建内容的步骤与创建数据记录的方法相同,这里只做简单说明。

1.本地创建一条空记录

let content = MyContent.create()

2.为上面创建的空记录赋值

content.set(data)

3.将创建的记录保存到服务器

content.save()

参数说明

参数类型必填说明
titleString内容标题
contentString详细容
coverFile封面图
descriptionString内容摘要
categoriesInteger Array内容所属分类

返回参数

参数类型说明
categoriesNumber Array内容分类
contentString内容详情
coverString封面图 url
created_atNumber创建时间
created_byNumberuser ID
descriptionString摘要
group_idNumber内容库 ID
idNumber内容 ID
titleString内容标题
update_atNumber更新时间

如果有自定义字段,则一并返回

暂时不支持批量创建内容

请求示例

  1. let MyContent = new BaaS.Content(groupID)
  2. let content = MyContent.create()
  3. let data = {
  4. title: 'Test Title',
  5. content: 'test content'
  6. }
  7. content.set(data).save().then(res => {
  8. // success
  9. }, err => {
  10. // err
  11. })

返回示例

res.data:

  1. {
  2. "categories": [],
  3. "content": "test content",
  4. "created_at": 1536818888,
  5. "group_id": 1534478179506295,
  6. "id": 1536818888733676,
  7. "title": "Test Title",
  8. "updated_at": 1536818888
  9. }

获取内容详情

MyContent.get(richTextID)

参数说明

参数名类型必填说明
richTextIDNumber内容 ID

返回参数

参数类型说明
categoriesNumber Array内容分类
contentString内容详情
coverString封面图 url
created_atNumber创建时间
created_byNumberuser ID
descriptionString摘要
group_idNumber内容库 ID
idNumber内容 ID
titleString内容标题
update_atNumber更新时间

如果有自定义字段,则一并返回

请求示例

  1. let richTextID = 1514529306082815
  2. MyContent.get(richTextID).then(res => {
  3. // success
  4. }, err => {
  5. // err
  6. })

返回示例

res.data:

  1. {
  2. "categories": [1513076252710475],
  3. "content": "<p>\b 该片讲述了伊娅不满父亲的恶作剧</p>",
  4. "cover": "https://cloud-minapp-1131.cloud.ifanrusercontent.com/1donykIpnuvcRiAX.jpg",
  5. "created_at": 1513076305,
  6. "created_by": 16042162,
  7. "description": "iphoneX 发布",
  8. "group_id": 1513076211190694,
  9. "id": 1513076305938456,
  10. "title": "iphone X",
  11. "updated_at": 1513076364
  12. }

获取符合筛选条件的内容总数

BaaS.Content#count()

  1. let query = new BaaS.Query()
  2. query.arrayContains('categories', [1513076252710475])
  3. let num = await MyContent.setQuery(query).count()
  4. console.log(num) // 10
  1. let query = new BaaS.Query()
  2. query.arrayContains('categories', [1513076252710475])
  3. MyContent.setQuery(query).count().then(num => {
  4. // success
  5. console.log(num) // 10
  6. callback(null, res)
  7. }, err => {
  8. // err
  9. callback(err)
  10. })

查询,获取内容列表

BaaS.Content#find(options)

参数说明

options:

参数类型必填默认说明
withCountbooleantrue是否返回 total_count

withCount 设为 false,接口返回的数据中不包含 total_count,当数据条目多时,可通过不返回 total_count 提高响应速度。如果需要查询记录的总数,请使用 count 方法。

SDK v2.x withCount 的默认值为 true,SDK v3+ withCount 的默认值为 false

内容查询与数据表查询方法一致

请求示例

  1. // 查找该内容库下的所有内容
  2. MyContent.find().then()
  3. // 查找该内容库下在指定分类下的内容
  4. let query = new BaaS.Query()
  5. query.arrayContains('categories', [1513076252710475])
  6. MyContent.setQuery(query).find().then(res => {
  7. // success
  8. }, err => {
  9. // err
  10. })

筛选字段

select 使用方法可以参考数据表 - 字段过滤小节

扩展字段

expand 使用方法可以参考数据表 - 字段扩展小节

假设 _richtextcontent 表中有一个类型为 pointer 的字段,名称为 pointer_test_oder, 指向了 test_order 表

请求示例

  1. let richTextID = 1514529306082815
  2. MyContent.select(['content', 'pointer_test_order']).expand('pointer_test_order').get(richTextID).then(res => {
  3. // success
  4. }, err => {
  5. // err
  6. })

返回示例

res.data:

  1. {
  2. "content": "<p>\b 该片讲述了伊娅不满父亲的恶作剧</p>",
  3. "pointer_test_order": {
  4. "created_at": 1538966895,
  5. "_table": "test_order",
  6. "id": "5bbac56fbd66033df7fd0aa2",
  7. "created_by": 61736923,
  8. "updated_at": 1538966895
  9. }
  10. }

请求示例

  1. let richTextID = 1514529306082815
  2. MyContent.select(['content', 'pointer_test_order']).expand('pointer_test_order').find().then(res => {
  3. // success
  4. }, err => {
  5. // err
  6. })

返回示例

res.data:

  1. {
  2. "meta": {
  3. "next": null,
  4. "offset": 0,
  5. "total_count": 1,
  6. "limit": 20,
  7. "previous": null
  8. },
  9. "objects": [
  10. {
  11. "content": "<p>\b 该片讲述了伊娅不满父亲的恶作剧</p>",
  12. "pointer_test_order": {
  13. "created_at": 1538966895,
  14. "_table": "test_order",
  15. "id": "5bbac56fbd66033df7fd0aa2",
  16. "created_by": 61736923,
  17. "updated_at": 1538966895
  18. }
  19. }
  20. ]
  21. }

更新内容

更新内容的步骤与更新数据记录的方法相同。

请求示例

  1. const content = MyContent.getWithoutData(richTextID)
  2. content.set({
  3. title: 'update title'
  4. })
  5. content.update().then(res => {
  6. // success
  7. }, err => {
  8. // err
  9. })

返回示例

res.data:

  1. {
  2. "categories": [],
  3. "content": "test content new 0001",
  4. "created_at": 1536826933,
  5. "group_id": 1534478179506295,
  6. "id": 1536826933728326,
  7. "title": "update title",
  8. "updated_at": 1536828592
  9. }

如果有自定义字段,则一并返回

暂时不支持批量更新内容

删除内容

MyContent.delete()

创建步骤

更新内容的步骤与删除数据记录的方法相同。

请求示例

  1. MyContent.delete(richTextID).then(res => {
  2. // success
  3. }, err => {
  4. // err
  5. })

返回示例

res.data:

  1. ""

暂时不支持批量删除内容