Angular с json-сервером почтовых сущностей без ID - PullRequest
1 голос
/ 21 июня 2019

Я занимаюсь разработкой углового проекта на макетном сервере json-server.GET работает правильно, но теперь у меня возникают некоторые проблемы с POST.
Я определил этот файл interventi.json со следующими данными:

{
    "interventi":[
        {
            "codice": "123",
            "codiceUso": 897,
            "dataIntervento": "21-06-2019",
            "dataInserimento": "24-06-2019",
            "cooperativa": "Example",
            "puntoVendita": "Example",
            "tipiAttivita": [
                "Prelievo",
                "Sanzione"
            ],
            "organoCompetente": "Ex"
        },
        {
            "codice": "456",
            "codiceUso": 823764,
            "dataIntervento": "24-06-2019",
            "dataInserimento": "29-06-2019",
            "cooperativa": "Example 2",
            "puntoVendita": "Example 2",
            "tipiAttivita": [
                "Prelievo"
            ],
            "organoCompetente": "Ex"
        }
    ]
}

Я пытаюсь опубликовать этот json:

{  
   "codice":"a7spx",
   "codiceUso":"123",
   "dataIntervento":"2019-06-21T12:58:09.345Z",
   "cooperativa":"2",
   "puntoVendita":2,
   "tipiAttivita":[  
      "Attivita 1",
      "Attivita 2"
   ],
   "organoCompetente":3,
   "dataInserimento":"2019-06-21T12:58:09.345Z"
}

, но это дает мне 500 внутреннюю ошибку сервера:

"Ошибка типа: невозможно прочитать свойство 'id' из неопределенного в Function.createId (C: \ Users \ Marina \coop-workspace \ wqrng \ web \ src \ main \ angular \ wqrng \ node_modules \ json-server \ lib \ server \ mixins.js: 47: 39) в Function.insert (C: \ Users \ Marina \ coop-workspace \wqrng \ web \ src \ main \ angular \ wqrng \ node_modules \ lodash-id \ src \ index.js: 47: 49) в C: \ Users \ Marina \ coop-workspace \ wqrng \ web \ src \ main \ angular \wqrng \ node_modules \ lodash \ lodash.js: 4374: 28 at arrayReduce (C: \ Users \ Marina \ coop-workspace \ wqrng \ web \ src \ main \ angular \ wqrng \ node_modules \ lodash \ lodash.js: 683: 21) в baseWrapperValue (C: \ Users \ Marina \ coop-workspace \ wqrng \ web \ src \ main \ angular \ wqrng \ node_modules \ lodash \ lodash.js: 4373: 14) в LodashWrapper.wrapperValue (C: \ Users \ Marina\ кооп-рабочее пространство \ wqrng \ Web \ SRC \ маиn \ angular \ wqrng \ node_modules \ lodash \ lodash.js: 9052: 14) при создании (C: \ Users \ Marina \ coop-workspace \ wqrng \ web \ src \ main \ angular \ wqrng \ node_modules \ json-server \lib \ server \ router \ mult.js: 225: 50) в Layer.handle [как handle_request] (C: \ Users \ Marina \ coop-workspace \ wqrng \ web \ src \ main \ angular \ wqrng \ node_modules \ express \lib \ router \ layer.js: 95: 5) в следующем (C: \ Users \ Marina \ coop-workspace \ wqrng \ web \ src \ main \ angular \ wqrng \ node_modules \ express \ lib \ router \ route.js:137: 13) в следующем (C: \ Users \ Marina \ coop-workspace \ wqrng \ web \ src \ main \ angular \ wqrng \ node_modules \ express \ lib \ router \ route.js: 131: 14) "

Я следовал этому руководству , чтобы писать, и увидел, что поле id не является обязательным, но сервер жалуется.Если я добавлю id поле в моем JSON, он работает правильно.Но я не хочу идентификатора в моих сущностях, есть ли способ отключить это поведение?

EDIT

// Return incremented id or uuid
// Used to override lodash-id's createId with utils.createId
function createId(coll) {
  var _ = this;
  var idProperty = _.__id();
  if (_.isEmpty(coll)) {
    return 1;
  } else {
    var id = _(coll).maxBy(idProperty)[idProperty];

    // Increment integer id or generate string id
    return _.isFinite(id) ? ++id : nanoid(7);
  }
}

1 Ответ

1 голос
/ 21 июня 2019

Если вы используете любой идентификатор, отличный от «id» по умолчанию, вы явно настраиваете его с помощью CLI json-сервера.

--id, -i           Set database id property (e.g. _id)         [default: "id"]

Проверьте следующую ссылку

https://github.com/typicode/json-server#cli-usage

...