Json-服务器的其余 API 问题

Rest API issue with Json-server

我想通过 json-服务器测试休息 API。所以首先我使用 npm 安装 json-server,然后我使用以下数据创建 db.json:

[
    {
        "id": 1,
        "name": "Angular Connect",
        "date": "2036-09-25T23:00:00.000Z",
        "time": "10:00 am",
        "price": 599.99,
        "imageUrl": "/assets/images/angularconnect-shield.png",
        "location": {
            "address": "1057 DT",
            "city": "London",
            "country": "England"
        },
        "sessions": [
            {
                "id": 1,
                "name": "Using Angular 4 Pipes",
                "presenter": "Peter Bacon Darwin",
                "duration": 1,
                "level": "Intermediate",
                "abstract": "Learn all about the new pipes in Angular 4, both \n        how to write them, and how to get the new AI CLI to write \n        them for you. Given by the famous PBD, president of Angular \n        University (formerly Oxford University)",
                "voters": [
                    "bradgreen",
                    "igorminar",
                    "martinfowler"
                ]
            },
            {
                "id": 2,
                "name": "Getting the most out of your dev team",
                "presenter": "Jeff Cross",
                "duration": 1,
                "level": "Intermediate",
                "abstract": "We all know that our dev teams work hard, but with \n        the right management they can be even more productive, without \n        overworking them. In this session I'll show you how to get the \n        best results from the talent you already have on staff.",
                "voters": [
                    "johnpapa",
                    "bradgreen",
                    "igorminar",
                    "martinfowler"
                ]
            },
            {
                "id": 3,
                "name": "Angular 4 Performance Metrics",
                "presenter": "Rob Wormald",
                "duration": 2,
                "level": "Advanced",
                "abstract": "Angular 4 Performance is hot. In this session, we'll see \n        how Angular gets such great performance by preloading data on \n        your users devices before they even hit your site using the \n        new predictive algorithms and thought reading software \n        built into Angular 4.",
                "voters": []
            },
            {
                "id": 4,
                "name": "Angular 5 Look Ahead",
                "presenter": "Brad Green",
                "duration": 2,
                "level": "Advanced",
                "abstract": "Even though Angular 5 is still 6 years away, we all want \n        to know all about it so that we can spend endless hours in meetings \n        debating if we should use Angular 4 or not. This talk will look at \n        Angular 6 even though no code has yet been written for it. We'll \n        look at what it might do, and how to convince your manager to \n        hold off on any new apps until it's released",
                "voters": []
            },
            {
                "id": 5,
                "name": "Basics of Angular 4",
                "presenter": "John Papa",
                "duration": 2,
                "level": "Beginner",
                "abstract": "It's time to learn the basics of Angular 4. This talk \n        will give you everything you need to know about Angular 4 to \n        get started with it today and be building UI's for your self \n        driving cars and butler-bots in no time.",
                "voters": [
                    "bradgreen",
                    "igorminar"
                ]
            }
        ]
    },
    {
        "id": 2,
        "name": "ng-nl",
        "date": "2037-04-14T23:00:00.000Z",
        "time": "9:00 am",
        "price": 950,
        "imageUrl": "/assets/images/ng-nl.png",
        "onlineUrl": "http://ng-nl.org/",
        "sessions": [
            {
                "id": 1,
                "name": "Testing Angular 4 Workshop",
                "presenter": "Pascal Precht & Christoph Bergdorf",
                "duration": 4,
                "level": "Beginner",
                "abstract": "In this 6 hour workshop you will learn not only how to test Angular 4, \n        you will also learn how to make the most of your team's efforts. Other topics\n        will be convincing your manager that testing is a good idea, and using the new\n        protractor tool for end to end testing.",
                "voters": [
                    "bradgreen",
                    "igorminar"
                ]
            },
            {
                "id": 2,
                "name": "Angular 4 and Firebase",
                "presenter": "David East",
                "duration": 3,
                "level": "Intermediate",
                "abstract": "In this workshop, David East will show you how to use Angular with the new\n        ultra-real-time 5D Firebase back end, hosting platform, and wine recommendation engine.",
                "voters": [
                    "bradgreen",
                    "igorminar",
                    "johnpapa"
                ]
            },
            {
                "id": 3,
                "name": "Reading the Angular 4 Source",
                "presenter": "Patrick Stapleton",
                "duration": 2,
                "level": "Intermediate",
                "abstract": "Angular 4's source code may be over 25 million lines of code, but it's really \n        a lot easier to read and understand then you may think. Patrick Stapleton will talk\n        about his secretes for keeping up with the changes, and navigating around the code.",
                "voters": [
                    "martinfowler"
                ]
            },
            {
                "id": 4,
                "name": "Hail to the Lukas",
                "presenter": "Lukas Ruebbelke",
                "duration": 1,
                "level": "Beginner",
                "abstract": "In this session, Lukas will present the \n        secret to being awesome, and how he became the President \n        of the United States through his amazing programming skills, \n        showing how you too can be success with just attitude.",
                "voters": [
                    "bradgreen"
                ]
            }
        ]
    },
    {
        "id": 3,
        "name": "ng-conf 2037",
        "date": "2037-05-03T23:00:00.000Z",
        "time": "9:00 am",
        "price": 759,
        "imageUrl": "/assets/images/ng-conf.png",
        "location": {
            "address": "The Palatial America Hotel",
            "city": "Salt Lake City",
            "country": "USA"
        },
        "sessions": [
            {
                "id": 1,
                "name": "How Elm Powers Angular 4",
                "presenter": "Murphy Randle",
                "duration": 2,
                "level": "Intermediate",
                "abstract": "We all know that Angular is written in Elm, but did you\n        know how the source code is really written? In this exciting look\n        into the internals of Angular 4, we'll see exactly how Elm powers\n        the framework, and what you can do to take advantage of this knowledge.",
                "voters": [
                    "bradgreen",
                    "martinfowler",
                    "igorminar"
                ]
            },
            {
                "id": 2,
                "name": "Angular and React together",
                "presenter": "Jamison Dance",
                "duration": 2,
                "level": "Intermediate",
                "abstract": "React v449.6 has just been released. Let's see how to use \n        this new version with Angular to create even more impressive applications.",
                "voters": [
                    "bradgreen",
                    "martinfowler"
                ]
            },
            {
                "id": 3,
                "name": "Redux Woes",
                "presenter": "Rob Wormald",
                "duration": 1,
                "level": "Intermediate",
                "abstract": "Everyone is using Redux for everything from Angular to React to \n        Excel macros, but you're still having trouble grasping it? We'll take a look\n        at how farmers use Redux when harvesting grain as a great introduction to \n        this game changing technology.",
                "voters": [
                    "bradgreen",
                    "martinfowler",
                    "johnpapa"
                ]
            },
            {
                "id": 4,
                "name": "ng-wat again!!",
                "presenter": "Shai Reznik",
                "duration": 1,
                "level": "Beginner",
                "abstract": "Let's take a look at some of the stranger pieces of Angular 4,\n        including neural net nets, Android in Androids, and using pipes with actual pipes.",
                "voters": [
                    "bradgreen",
                    "martinfowler",
                    "igorminar",
                    "johnpapa"
                ]
            },
            {
                "id": 5,
                "name": "Dressed for Success",
                "presenter": "Ward Bell",
                "duration": 2,
                "level": "Beginner",
                "abstract": "Being a developer in 2037 is about more than just writing bug-free code. \n        You also have to look the part. In this amazing expose, Ward will talk you through\n        how to pick out the right clothes to make your coworkers and boss not only\n        respect you, but also want to be your buddy.",
                "voters": [
                    "bradgreen",
                    "martinfowler"
                ]
            },
            {
                "id": 6,
                "name": "These aren't the directives you're looking for",
                "presenter": "John Papa",
                "duration": 2,
                "level": "Intermediate",
                "abstract": "Coinciding with the release of Star Wars Episode 18, this talk will show how\n        to use directives in your Angular 4 development while drawing lessons from the new movie,\n        featuring all your favorite characters like Han Solo's ghost and Darth Jar Jar.",
                "voters": [
                    "bradgreen",
                    "martinfowler"
                ]
            }
        ]
    },
    {
        "id": 4,
        "name": "UN Angular Summit",
        "date": "2037-06-09T23:00:00.000Z",
        "time": "8:00 am",
        "price": 800,
        "imageUrl": "/assets/images/basic-shield.png",
        "location": {
            "address": "The UN Angular Center",
            "city": "New York",
            "country": "USA"
        },
        "sessions": [
            {
                "id": 1,
                "name": "Diversity in Tech",
                "presenter": "Sir Dave Smith",
                "duration": 2,
                "level": "Beginner",
                "abstract": "Yes, we all work with cyborgs and androids and Martians, but \n        we probably don't realize that sometimes our internal biases can make it difficult for\n        these well-designed coworkers to really feel at home coding alongside us. This talk will\n        look at things we can do to recognize our biases and counteract them.",
                "voters": [
                    "bradgreen",
                    "igorminar"
                ]
            },
            {
                "id": 2,
                "name": "World Peace and Angular",
                "presenter": "US Secretary of State Zach Galifianakis",
                "duration": 2,
                "level": "Beginner",
                "abstract": "Angular has been used in most of the major peace brokering that has\n        happened in the last decade, but there is still much we can do to remove all\n        war from the world, and Angular will be a key part of that effort.",
                "voters": [
                    "bradgreen",
                    "igorminar",
                    "johnpapa"
                ]
            },
            {
                "id": 3,
                "name": "Using Angular with Androids",
                "presenter": "Dan Wahlin",
                "duration": 3,
                "level": "Advanced",
                "abstract": "Androids may do everything for us now, allowing us to spend all day playing \n        the latest Destiny DLC, but we can still improve the massages they give and the handmade\n        brie they make using Angular 4. This session will show you how.",
                "voters": [
                    "igorminar",
                    "johnpapa"
                ]
            }
        ]
    },
    {
        "id": 5,
        "name": "ng-vegas",
        "date": "2037-02-10T00:00:00.000Z",
        "time": "9:00 am",
        "price": 400,
        "imageUrl": "/assets/images/ng-vegas.png",
        "location": {
            "address": "The Excalibur",
            "city": "Las Vegas",
            "country": "USA"
        },
        "sessions": [
            {
                "id": 1,
                "name": "Gambling with Angular",
                "presenter": "John Papa",
                "duration": 1,
                "level": "Intermediate",
                "abstract": "No, this talk isn't about slot machines. We all know that \n        Angular is used in most waiter-bots and coke vending machines, but\n        did you know that was also used to write the core engine in the majority\n        of voting machines? This talk will look at how all presidential elections\n        are now determined by Angular code.",
                "voters": [
                    "bradgreen",
                    "igorminar"
                ]
            },
            {
                "id": 2,
                "name": "Angular 4 in 60ish Minutes",
                "presenter": "Dan Wahlin",
                "duration": 2,
                "level": "Beginner",
                "abstract": "Get the skinny on Angular 4 for anyone new to this great new technology.\n        Dan Wahlin will show you how you can get started with Angular in 60ish minutes, \n        guaranteed!",
                "voters": [
                    "bradgreen",
                    "igorminar",
                    "johnpapa"
                ]
            }
        ]
    }
]

在 package.json 脚本中添加以下命令后:

"json-server": "json-server --watch db.json"

但是当我 运行 服务器使用这个命令时:npm 运行 json-server

我收到以下错误消息:

Loading db.json Done

Data must be an object. Found object.See https://github.com/typicode/json-server for example.

npm ERR! code ELIFECYCLE npm ERR! errno 1 npm ERR! events@0.0.0 json-server: json-server --watch db.json npm ERR! Exit status 1 npm ERR! npm ERR! Failed at the events@0.0.0 json-server script. npm ERR! This is probably not a problem with npm. There is likely additional logging output above.

npm ERR! A complete log of this run can be found in: npm ERR!
C:\Users\maoutir\AppData\Roaming\npm-cache_logs18-09-17T09_59_06_721Z-debug.log

非常感谢您的帮助。预先感谢您的帮助。

您的 json 文件需要是一个基本级别的对象。

{
 "data": [//the rest of your data]
}

当前您的数据在数组中。所以试着把你的数组放在对象中。

像这样保存您的 Db 文件:

{
   [
      {
        "id": 1,
        "name": "Angular Connect",
        "date": "2036-09-25T23:00:00.000Z",
        "time": "10:00 am",
        "price": 599.99,
        "imageUrl": "/assets/images/angularconnect-shield.png",
        "location": {
            "address": "1057 DT",
            "city": "London",
            "country": "England"
        },
        "sessions": [
            {
                "id": 1,
                "name": "Using Angular 4 Pipes",
                "presenter": "Peter Bacon Darwin",
                "duration": 1,
                "level": "Intermediate",
                "abstract": "Learn all about the new pipes in Angular 4, both \n        how to write them, and how to get the new AI CLI to write \n        them for you. Given by the famous PBD, president of Angular \n        University (formerly Oxford University)",
                "voters": [
                    "bradgreen",
                    "igorminar",
                    "martinfowler"
                ]
            },
            {
                "id": 2,
                "name": "Getting the most out of your dev team",
                "presenter": "Jeff Cross",
                "duration": 1,
                "level": "Intermediate",
                "abstract": "We all know that our dev teams work hard, but with \n        the right management they can be even more productive, without \n        overworking them. In this session I'll show you how to get the \n        best results from the talent you already have on staff.",
                "voters": [
                    "johnpapa",
                    "bradgreen",
                    "igorminar",
                    "martinfowler"
                ]
            },
            {
                "id": 3,
                "name": "Angular 4 Performance Metrics",
                "presenter": "Rob Wormald",
                "duration": 2,
                "level": "Advanced",
                "abstract": "Angular 4 Performance is hot. In this session, we'll see \n        how Angular gets such great performance by preloading data on \n        your users devices before they even hit your site using the \n        new predictive algorithms and thought reading software \n        built into Angular 4.",
                "voters": []
            },
            {
                "id": 4,
                "name": "Angular 5 Look Ahead",
                "presenter": "Brad Green",
                "duration": 2,
                "level": "Advanced",
                "abstract": "Even though Angular 5 is still 6 years away, we all want \n        to know all about it so that we can spend endless hours in meetings \n        debating if we should use Angular 4 or not. This talk will look at \n        Angular 6 even though no code has yet been written for it. We'll \n        look at what it might do, and how to convince your manager to \n        hold off on any new apps until it's released",
                "voters": []
            },
            {
                "id": 5,
                "name": "Basics of Angular 4",
                "presenter": "John Papa",
                "duration": 2,
                "level": "Beginner",
                "abstract": "It's time to learn the basics of Angular 4. This talk \n        will give you everything you need to know about Angular 4 to \n        get started with it today and be building UI's for your self \n        driving cars and butler-bots in no time.",
                "voters": [
                    "bradgreen",
                    "igorminar"
                ]
            }
        ]
    },
    {
        "id": 2,
        "name": "ng-nl",
        "date": "2037-04-14T23:00:00.000Z",
        "time": "9:00 am",
        "price": 950,
        "imageUrl": "/assets/images/ng-nl.png",
        "onlineUrl": "http://ng-nl.org/",
        "sessions": [
            {
                "id": 1,
                "name": "Testing Angular 4 Workshop",
                "presenter": "Pascal Precht & Christoph Bergdorf",
                "duration": 4,
                "level": "Beginner",
                "abstract": "In this 6 hour workshop you will learn not only how to test Angular 4, \n        you will also learn how to make the most of your team's efforts. Other topics\n        will be convincing your manager that testing is a good idea, and using the new\n        protractor tool for end to end testing.",
                "voters": [
                    "bradgreen",
                    "igorminar"
                ]
            },
            {
                "id": 2,
                "name": "Angular 4 and Firebase",
                "presenter": "David East",
                "duration": 3,
                "level": "Intermediate",
                "abstract": "In this workshop, David East will show you how to use Angular with the new\n        ultra-real-time 5D Firebase back end, hosting platform, and wine recommendation engine.",
                "voters": [
                    "bradgreen",
                    "igorminar",
                    "johnpapa"
                ]
            },
            {
                "id": 3,
                "name": "Reading the Angular 4 Source",
                "presenter": "Patrick Stapleton",
                "duration": 2,
                "level": "Intermediate",
                "abstract": "Angular 4's source code may be over 25 million lines of code, but it's really \n        a lot easier to read and understand then you may think. Patrick Stapleton will talk\n        about his secretes for keeping up with the changes, and navigating around the code.",
                "voters": [
                    "martinfowler"
                ]
            },
            {
                "id": 4,
                "name": "Hail to the Lukas",
                "presenter": "Lukas Ruebbelke",
                "duration": 1,
                "level": "Beginner",
                "abstract": "In this session, Lukas will present the \n        secret to being awesome, and how he became the President \n        of the United States through his amazing programming skills, \n        showing how you too can be success with just attitude.",
                "voters": [
                    "bradgreen"
                ]
            }
        ]
    },
    {
        "id": 3,
        "name": "ng-conf 2037",
        "date": "2037-05-03T23:00:00.000Z",
        "time": "9:00 am",
        "price": 759,
        "imageUrl": "/assets/images/ng-conf.png",
        "location": {
            "address": "The Palatial America Hotel",
            "city": "Salt Lake City",
            "country": "USA"
        },
        "sessions": [
            {
                "id": 1,
                "name": "How Elm Powers Angular 4",
                "presenter": "Murphy Randle",
                "duration": 2,
                "level": "Intermediate",
                "abstract": "We all know that Angular is written in Elm, but did you\n        know how the source code is really written? In this exciting look\n        into the internals of Angular 4, we'll see exactly how Elm powers\n        the framework, and what you can do to take advantage of this knowledge.",
                "voters": [
                    "bradgreen",
                    "martinfowler",
                    "igorminar"
                ]
            },
            {
                "id": 2,
                "name": "Angular and React together",
                "presenter": "Jamison Dance",
                "duration": 2,
                "level": "Intermediate",
                "abstract": "React v449.6 has just been released. Let's see how to use \n        this new version with Angular to create even more impressive applications.",
                "voters": [
                    "bradgreen",
                    "martinfowler"
                ]
            },
            {
                "id": 3,
                "name": "Redux Woes",
                "presenter": "Rob Wormald",
                "duration": 1,
                "level": "Intermediate",
                "abstract": "Everyone is using Redux for everything from Angular to React to \n        Excel macros, but you're still having trouble grasping it? We'll take a look\n        at how farmers use Redux when harvesting grain as a great introduction to \n        this game changing technology.",
                "voters": [
                    "bradgreen",
                    "martinfowler",
                    "johnpapa"
                ]
            },
            {
                "id": 4,
                "name": "ng-wat again!!",
                "presenter": "Shai Reznik",
                "duration": 1,
                "level": "Beginner",
                "abstract": "Let's take a look at some of the stranger pieces of Angular 4,\n        including neural net nets, Android in Androids, and using pipes with actual pipes.",
                "voters": [
                    "bradgreen",
                    "martinfowler",
                    "igorminar",
                    "johnpapa"
                ]
            },
            {
                "id": 5,
                "name": "Dressed for Success",
                "presenter": "Ward Bell",
                "duration": 2,
                "level": "Beginner",
                "abstract": "Being a developer in 2037 is about more than just writing bug-free code. \n        You also have to look the part. In this amazing expose, Ward will talk you through\n        how to pick out the right clothes to make your coworkers and boss not only\n        respect you, but also want to be your buddy.",
                "voters": [
                    "bradgreen",
                    "martinfowler"
                ]
            },
            {
                "id": 6,
                "name": "These aren't the directives you're looking for",
                "presenter": "John Papa",
                "duration": 2,
                "level": "Intermediate",
                "abstract": "Coinciding with the release of Star Wars Episode 18, this talk will show how\n        to use directives in your Angular 4 development while drawing lessons from the new movie,\n        featuring all your favorite characters like Han Solo's ghost and Darth Jar Jar.",
                "voters": [
                    "bradgreen",
                    "martinfowler"
                ]
            }
        ]
    },
    {
        "id": 4,
        "name": "UN Angular Summit",
        "date": "2037-06-09T23:00:00.000Z",
        "time": "8:00 am",
        "price": 800,
        "imageUrl": "/assets/images/basic-shield.png",
        "location": {
            "address": "The UN Angular Center",
            "city": "New York",
            "country": "USA"
        },
        "sessions": [
            {
                "id": 1,
                "name": "Diversity in Tech",
                "presenter": "Sir Dave Smith",
                "duration": 2,
                "level": "Beginner",
                "abstract": "Yes, we all work with cyborgs and androids and Martians, but \n        we probably don't realize that sometimes our internal biases can make it difficult for\n        these well-designed coworkers to really feel at home coding alongside us. This talk will\n        look at things we can do to recognize our biases and counteract them.",
                "voters": [
                    "bradgreen",
                    "igorminar"
                ]
            },
            {
                "id": 2,
                "name": "World Peace and Angular",
                "presenter": "US Secretary of State Zach Galifianakis",
                "duration": 2,
                "level": "Beginner",
                "abstract": "Angular has been used in most of the major peace brokering that has\n        happened in the last decade, but there is still much we can do to remove all\n        war from the world, and Angular will be a key part of that effort.",
                "voters": [
                    "bradgreen",
                    "igorminar",
                    "johnpapa"
                ]
            },
            {
                "id": 3,
                "name": "Using Angular with Androids",
                "presenter": "Dan Wahlin",
                "duration": 3,
                "level": "Advanced",
                "abstract": "Androids may do everything for us now, allowing us to spend all day playing \n        the latest Destiny DLC, but we can still improve the massages they give and the handmade\n        brie they make using Angular 4. This session will show you how.",
                "voters": [
                    "igorminar",
                    "johnpapa"
                ]
            }
        ]
    },
    {
        "id": 5,
        "name": "ng-vegas",
        "date": "2037-02-10T00:00:00.000Z",
        "time": "9:00 am",
        "price": 400,
        "imageUrl": "/assets/images/ng-vegas.png",
        "location": {
            "address": "The Excalibur",
            "city": "Las Vegas",
            "country": "USA"
        },
        "sessions": [
            {
                "id": 1,
                "name": "Gambling with Angular",
                "presenter": "John Papa",
                "duration": 1,
                "level": "Intermediate",
                "abstract": "No, this talk isn't about slot machines. We all know that \n        Angular is used in most waiter-bots and coke vending machines, but\n        did you know that was also used to write the core engine in the majority\n        of voting machines? This talk will look at how all presidential elections\n        are now determined by Angular code.",
                "voters": [
                    "bradgreen",
                    "igorminar"
                ]
            },
            {
                "id": 2,
                "name": "Angular 4 in 60ish Minutes",
                "presenter": "Dan Wahlin",
                "duration": 2,
                "level": "Beginner",
                "abstract": "Get the skinny on Angular 4 for anyone new to this great new technology.\n        Dan Wahlin will show you how you can get started with Angular in 60ish minutes, \n        guaranteed!",
                "voters": [
                    "bradgreen",
                    "igorminar",
                    "johnpapa"
                ]
            }
        ]
    }
  ]
}

如果出现 elifecycle 错误则执行

npm 缓存清理然后从我的项目结构中删除 node_modules 目录。

之后使用 npm install 再次安装依赖项。