无法使用 Json-Server 在我的 Nextjs 应用程序中正确执行 CRUD 操作

Not able to perform CURD operations properly in my Extjs app using Json-Server

我正在使用 Json-server 在我的 extjs 网格中测试 CURD 操作。我在 json-server 上放置了一些虚拟数据,我可以读取、删除、更新和编辑这些数据。 但是当我使用我的 extjs 应用程序创建数据时,我无法删除或编辑该数据,因为自动生成的 ID 是 "nameOfMyModel + autoIncrementNumber".

我的商店是:

Ext.define('ThemeApp.store.peopleStore', {
    extend: 'Ext.data.Store',
        model: 'ThemeApp.model.peopleModel',
        storeId: 'peopleStore',
        pageSize: 500,  
        autoLoad: true,
        autoSync: true
});

型号是:

Ext.define('ThemeApp.model.peopleModel', {
    extend: 'Ext.data.Model',

    fields: [ 'id' ,'title','body'],

    proxy: {
        type: 'rest',
        //format: 'json',
        limitParam:"",
        filterParam: "",
        startParam:'',
        pageParam:'',

        url:'http://localhost:3000/posts',
        api: {
    read  : 'http://localhost:3000/db',
    create: 'http://localhost:3000/posts',
    update  : 'http://localhost:3000/posts' ,
    destroy : 'http://localhost:3000/posts' 
 }, 
        headers: {'Content-Type': "application/json" },        
        reader: {
        type: 'json',
        rootProperty:'posts'
        },
        writer: {
            type: 'json'
        }           
    }
});

我正在添加这样的用户:

var UserStore = Ext.getStore('peopleStore');
var user = Ext.create('ThemeApp.model.peopleModel',{title: "Test", body: "Testing" });                      
user.save(); //POST /users
UserStore.load();

删除:

var grid =  button.up('gridpanel');
var selection = grid.getView().getSelectionModel().getSelection()[0];

if (selection) {

  UserStore.remove(selection);
  UserStore.load();                         
}

谁能告诉我为什么我无法 delete/update 通过 extjs 应用程序生成的记录? 简单 post 的 Id 就像 http://localhost:3000/posts/(number 喜欢 1 或 2) 应用程序生成的记录是 http://localhost:3000/posts/ThemeApp.model.peopleModel-1

我可以在 database.json 中看到应用程序生成的记录,但浏览器显示此 url 不存在。

请指出我的错误

您无法删除它们的原因是它们未正确创建。首先生成顺序 ID 使用

identifier: 'sequential' 在你的模型中,它会生成数字 id 您可以在此处详细阅读 Model identifier 执行此操作后生成新对象并查看是否可以正确处理它们。