Json-Server DELETE 没有 CASCADE?

问题描述

我在 Angular 项目中使用 json-server 来模拟 REST API。适用于除 DELETE 之外的所有内容,其中任何和所有包含多个 ID 列的 json 对象都会在发出 DELETE 请求时被删除

假设我有以下一组具有相关“accountId”ID 列的对象:

"accountfiles": [{
    id: 9001,accountId: 1001,filename: 'test.docx',},{
    id: 9002,accountId: 1002,filename: 'test.txt',{
    id: 9003,filename: 'taxes.pdf',{
    id: 9004,accountId: 1003,filename: 'layout.ppt',{
    id: 9005,filename: 'Spreadsheet 5.xlsx',}
)];

这些可在以下位置获得: http://localhost:3000/accountfiles

然后我删除了这个单独的对象: http://localhost:3000/accountfiles/1001

删除整个集合以及包含多个 ID 列的所有其他集合。

此外,如果我有一个 Account 类:

"account": [
  {
    "id": 1001,"isInactive": false,"name": "HK Asset Group","accountlogoUrl": "/assets/img/logos/logo2.png","location": "Minneapolis MN 55434"
  }
]

然后我删除了帐户 ID:1001,整​​个 accountfiles 集合也被删除了。

我尝试使用 --no-cascade-delete 启动标志但无济于事(似乎不是当前 json-server 构建的一部分)。

在json-server中托管相关数据并有效删除是不可能的吗?

谢谢

解决方法

迟到的答案,但迟到总比不到好。 这个问题仍然是相关的。 我设法通过将所有删除重定向到自定义中间件来绕过这种行为。 坦率地说,处理复杂方面需要一个可以处理与您的逻辑相关的所有合规性的中间件。

var ROUTER = JSON_SERVER.router('./db/db.json');
.
.
.
var paramID = req.params?.id;
var db = router.db;
var ents = db.get('entitieAs').valueOf(); // gets entitieAs collection

db.set('entitieAs',ents.filter(element=>element.id === paramID)).write(); // replace the target collection by the resulting collection after delete

然后在您的 deleteEntities() 方法中获取对您的数据库的引用并相应地管理记录:

   Future<List<ProductoModel>> cargarProductos() async {
    final url = '$_url/productos.json';

    final resp = await http.get(Uri.parse(url));

    final Map<String,dynamic> decodeData = json.decode(resp.body);

    List produc = [];

    if (decodeData == null) return [];

    decodeData.forEach((id,prod) {
      final prodTemp = ProductoModel.fromJson(prod);
      prodTemp.id = id;
      produc.add(prodTemp);
      //print(produc); <-- if i print here work excelent

    });
    print(produc);  //<-- dont work,dont print nothing 

    return []; //<-- this line dont work too...
  }

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...