Почему я получаю ошибку HTTP 404 во время написания кода вместе с учебником Heroes AngularJS? - PullRequest
0 голосов
/ 26 марта 2019

Я новичок в AngularJS и пробую свои силы с помощью Учебника по Angular Heroes. Пока все прошло хорошо, пока я не попал в учебник по HTTP (https://angular.io/tutorial/toh-pt6)

Я попытался переупорядочить массив объявлений app.module.ts import. Я попытался удалить-переустановить in-memory-web-api. Я проверил коллекцию, возвращаемую InMemoryDataService, но пока не повезло. Интересно, смогу ли я когда-нибудь пройти через это?

App.module.ts

import { BrowserModule } from '@angular/platform-browser';
import { NgModule } from '@angular/core';
import { AppRoutingModule } from './app-routing.module';
import { AppComponent } from './app.component';
import { EmployeesComponent } from './employees/employees.component';
import { FormsModule } from '@angular/forms';
import { EmployeeDetailComponent } from './employee-detail/employee-
detail.component';
import { MessagesComponent } from './messages/messages.component';
import { DashboardComponent } from './dashboard/dashboard.component'; // <-- 
NgModel lives here
import { HttpClientModule }    from '@angular/common/http';
import { HttpClientInMemoryWebApiModule } from 'angular-in-memory-web-api';
import { InMemoryDataService }  from './in-memory-data.service';

@NgModule({
  declarations: [
    AppComponent,
    EmployeesComponent,
    EmployeeDetailComponent,
    MessagesComponent,
    DashboardComponent
  ],
  imports: [
    BrowserModule,
    FormsModule,
    HttpClientModule,
    HttpClientInMemoryWebApiModule.forRoot(
      InMemoryDataService, { dataEncapsulation: false }),
    AppRoutingModule,
  ],
  providers: [],
  bootstrap: [AppComponent]
})

export class AppModule { }

employee.service.ts

  getEmployee(ecode: number): Observable<Employee> {
    const url = `${this.employeesUrl}/${ecode}`;
    return this.http.get<Employee>(url).pipe(
      tap(_ => this.log('fetched employee ecode=${ecode}')),
      catchError(this.handleError<Employee>(`getEmployee ecode=${ecode}`))
    );
  }

  /** PUT: update the employee on the server */

  updateEmployee(employee: Employee): Observable<any> {
    return this.http.put(this.employeesUrl, employee, httpOptions)
      .pipe(
        tap(_ => this.log(`updated employee ecode=${employee.ecode}`)),
        catchError(this.handleError<any>('updateEmployee'))
      );
  }
}

Я ожидаю, что getEmployees() метод будет работать. Однако я получаю следующую ошибку:

body: {error: "'employees' with id='13' not found"}
headers: HttpHeaders {normalizedNames: Map(0), lazyUpdate: null, lazyInit: ƒ}
status: 404
statusText: "Not Found"
url: "api/employees/13"

(из консоли инструментов разработчика)

...