You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Angular2 InMemoryWebApiModule报404:'workers'集合未找到问题求助

解决InMemoryWebApiModule的"Collection 'workers' not found" 404问题

我一眼就发现问题出在你的WorkerData类的createDb方法里了!InMemoryWebApi要求这个方法返回一个对象,其中每个键对应你的集合名称,值才是对应的数据数组。你现在直接返回了workers数组,导致InMemoryWebApi没法识别这个集合的名称,自然找不到workers集合啦。

修复步骤:

1. 修改WorkerData的createDb方法

把返回的数组包装成一个对象,键名设为workers(和你API URL里的api/workers对应):

@Injectable()
export class WorkerData implements InMemoryDbService {
  createDb() {
    let workers = [{
     "id": 1,
     "IDNumber": 289156,
     "FirstName":"qqqqqq",
     "LastName":"cccccc",
     "DateOfBirth": "02/11/1991",
     "PhoneNumber1": "3422-088808",
     "PhoneNumber2":"3234-6321223",
     "General_Additional_Data": "qqqqqqqqqqqqq"
    }, {
     "id": 2,
     "IDNumber": 289157,
     "FirstName":"aaaaaaa",
     "LastName":"bbbbbbb",
     "DateOfBirth": "05/11/1981",
     "PhoneNumber1": "02328-08434348",
     "PhoneNumber2":"052322-63213434",
     "General_Additional_Data": "efefsdfsdfs"
    }, {
     "id": 3,
     "IDNumber": 289466,
     "FirstName":"aaaaa",
     "LastName":"bbbbbb",
     "DateOfBirth": "05/1/1991",
     "PhoneNumber1": "0328-45634348",
     "PhoneNumber2":"3232-7613434",
     "General_Additional_Data": "aaaaaaaaaaaaaaaaa"
    }];
    // 关键修改:返回包含workers属性的对象
    return { workers };
  }
}

2. 验证其他配置

  • 确认AppModule里InMemoryWebApiModule.forRoot(WorkerData)的导入正确,没有拼写错误。
  • 检查WorkerService里的_workerURL = 'api/workers',这个路径和你返回的集合名称workers完全匹配,没问题。
  • 确保HttpModule已经正确导入到AppModule的imports数组中(你已经加了,这点没问题)。

为什么这样改?

InMemoryWebApi会把你返回的对象的键当作集合名称,比如返回{ workers: [...] },它就会自动映射到api/workers这个端点。如果你直接返回数组,它没法确定对应的集合名称,所以就会返回404错误。

改完之后再调用getWorkers方法,应该就能正常获取到模拟数据了!

内容的提问来源于stack exchange,提问作者Guy E

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.15 06:44:09