【问题标题】:JSON server get resourcesJSON服务器获取资源
【发布时间】:2018-12-13 10:49:27
【问题描述】:

我正在尝试使用 json-server 构建快速后端

我的端点和数据如下:

端点:http://localhost:3000/members/1

输出数据:

现在假设我想做几件事:

  1. 获取成员的所有报告。

按照文档,我试图这样做: http://localhost:3000/members/1?_embed=reports 获取 reports 数组。 但这是对我空数组的回应:

{
id: 1,
username: "member1",
firstName: "Miss Osbaldo",
lastName: "Wisozk",
password: "123456",
role: "member",
reports: [ ]
}
  1. 我想在reports 数组中添加一些report 对象。 我怎样才能做到这一点?

例如id=1 的成员创建一个新报告。之后该报告应该存在于成员 1 的 reports 数组中。

我的generates.js 文件:

return {
members: _.times(30, function (n) {
  return {
    id: (n + 1),
    username: 'member' + (n + 1),
    firstName: faker.name.prefix() + ' ' + faker.name.firstName(),
    lastName: faker.name.lastName(),
    avatar: faker.image.avatar(),
    address: faker.address.streetAddress("###") + ' ' + faker.address.city() + ' ' + faker.address.county(),
    phone: faker.phone.phoneNumberFormat(),
    division: faker.random.arrayElement(division),
    password: "123456",
    role: "member",
    reports: _.times(5, function (n) {
      return {
        id: n,
        date: faker.date.weekday(),
        achievement: faker.lorem.sentence(),
        issues: faker.random.arrayElement(issues),
        descriptions: faker.lorem.paragraphs(),
        comment: faker.lorem.sentences()
      }
    })
  }
}),

【问题讨论】:

  • 如何访问该报告数组或api会自动返回一个数组?
  • @PrashantPimpale 我正在使用fakerlodash 并创建生成文件。我在上面更新了。

标签: javascript json json-server


【解决方案1】:

根据docslive demo,您的第一个请求/查询是正确的:http://jsonplaceholder.typicode.com/posts/1?_embed=comments 返回帖子 #1 及其所有 cmets。

对于您的问题 #1,我建议您仔细检查您的数据库文件。

对于第二个问题,您可以使用 POST 和 PATCH 等 HTTP 动词:https://github.com/typicode/jsonplaceholder#updating-a-resource 这应该更新您的“数据库”文件(json 文件)

【讨论】:

  • 什么是双重检查?我只想得到reports数组。
  • 抱歉,我的意思是确保服务器用作其“数据库”的 json 文件具有您期望的数据。
【解决方案2】:

对于您的问题 #1,请使用 http://localhost:3000/members/1/reports 路由。它将返回成员 #1 的所有报告

【讨论】:

    【解决方案3】:

    db = {}

    db.posts = [
      { id: 1, body: 'foo' },
      { id: 2, body: 'bar' },
    ]
    
    db.comments = [
      { id: 1, post_id: 1 },
      { id: 2, post_id: 1 },
      { id: 3, post_id: 2 },
    ]
    
    server = jsonServer.create()
    router = jsonServer.router(db, { foreignKeySuffix: '_id' })
    server.use(jsonServer.defaults())
    server.use(router)
    

    })

    【讨论】:

      猜你喜欢
      • 2015-01-22
      • 2013-01-24
      • 2012-11-30
      • 2022-09-28
      • 2016-04-20
      • 2020-07-20
      • 1970-01-01
      • 2019-09-27
      • 1970-01-01
      相关资源
      最近更新 更多