无法使用 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
执行此操作后生成新对象并查看是否可以正确处理它们。
我正在使用 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
执行此操作后生成新对象并查看是否可以正确处理它们。