Angular 메모리 (in - memory) 서버 를 어떻게 사용 합 니까?
4492 단어 메모리angular2angular.jsangular4
전후 단 분리 개발 에서 일반적으로 기능 개발 전에 전단 인원 과 서버 는 관련 api 를 제정 하여 데이터 형식 으로 되 돌아 갈 수 있 도록 한다. 정 해진 후에 우 리 는 메모리 서버 를 신속하게 구축 할 수 있다.
예 를 들 어 우 리 는 이런 데이터 구조 가 필요 하 다.
데이터 모델:
// person.model.ts
class Person {
id: string;
name: string;
dept: string;
}
보통 돌아 오 는 JSON 은 이렇다.
{
"data": [
{
"id": "0001",
"name": " ③ ",
"dept": "IT "
},
{
"id": "0002",
"name": " ",
"dept": "IT "
},
{
"id": "0003",
"name": " ",
"dept": " "
}
]
}
우선 angular - in - memory - web - api 를 설치 하고 입력 해 야 합 니 다.
npm install --save angular-in-memory-web-api
그리고 폴 더 아래 에 파일 을 만 듭 니 다:
// src\app\my\my-data.ts
import { InMemoryDbService } from 'angular-in-memory-web-api';
import { Person } from './person.model';
export class InMemoryPersonDbService implements InMemoryDbService {
createDb() {
let persons: Person[] = [
{
"id": "0001",
"name": " ③ ",
"dept": "IT "
},
{
"id": "0002",
"name": " ",
"dept": "IT "
},
{
"id": "0003",
"name": " ",
"dept": " "
}
];
return {persons};
}
}
InMemory DbService 의 메모리 데 이 터 를 실현 하려 면 이 데이터 베 이 스 는 사실상 배열 을 전송 하 는 것 이다.app. module. ts 를 설정 하고 클래스 참조 와 대응 하 는 모듈 설명 을 추가 합 니 다.
// app.module.ts
import { HttpModule } from '@angular/http';
import { InMemoryWebApiModule } from 'angular-in-memory-web-api';
import { InMemoryPersonDbService } from '../app/my/my-data';
@NgModule({
imports: [
HttpModule,
InMemoryWebApiModule.forRoot(InMemoryPersonDbService),
...
],
...
})
export class AppModule { ... }
이제 좀 포 인 트 를 줬 어 요.
// service.ts
import { Injectable } from '@angular/core';
import { Http, Headers } from '@angular/http';
import { UUID } from 'angular2-uuid';
import 'rxjs/add/operator/toPromise';
import { Person } from './person.model';
@Injectable()
export class PersonService {
private api_url = 'api/persons'; // *
private headers = new Headers({'Content-Type': 'application/json'});
constructor(private http: Http) { }
// POST /persons
addPerson(name:string,dept:string): Promise {
let person = {
id: UUID.UUID(),
name: name,
dept: dept
};
return this.http
.post(this.api_url, JSON.stringify(person), {headers: this.headers})
.toPromise()
.then(res => res.json().data as Person)
.catch(this.handleError);
}
private handleError(error: any): Promise {
console.error('An error occurred', error);
return Promise.reject(error.message || error);
}
}
중점: 위의 코드 를 우 리 는 정 의 를 보 았 다.
api_url = 'api/persons';
이 주 소 는 도대체 어떻게 성명 해 야 합 니까?
그러면 우 리 는 api 로 바 꾸 자.url = 'app / my data' 이 메모리 웹 서비스의 메커니즘 은 웹 접근 을 차단 하 는 것 이기 때 문 입 니 다. 즉, 모든 주소 가 가능 합 니 다. 메모리 웹 서 비 스 는 이 주 소 를 차단 하고 요청 이 RESTful API 의 요 구 를 만족 시 키 는 지 분석 합 니 다.
마지막 으로 간단하게 말하자면 RESTful API 에서 '명사' 로 자원 을 표시 하 는 것 이다. 예 를 들 어 url 이 api / persons 라면
모든 구성원 조회: GET 방법 으로 api / persons 를 방문 하여 특정한 구성원 을 조회 합 니 다. GET 방법 으로 api / persons / id 를 방문 합 니 다. 예 를 들 어 id 가 1 이면 api / persons / 1 을 방문 하여 특정한 구성원 을 업데이트 합 니 다. PUT 방법 으로 api / persons / id 를 방문 하여 특정한 구성원 을 삭제 합 니 다. DELETE 방법 으로 api / persons / id 를 방문 하여 한 구성원 을 추가 합 니 다. POST 방법 으로 api / persons 를 방문 합 니 다.
in - memory 에 대해 더 읽 을 수 있 습 니 다:http://npm.taobao.org/package...
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
데이터 지향 설계(Data Oriented Design)에서의 게임 개발에 대해서게임 개발을 할 때의 생각에는 데이터 지향 설계(Data Oriented Design)라는 것이 있습니다. 지난 수십 년 동안 CPU 성능이 1만배 이상인 반면 메모리 성능은 10배 미만밖에 되지 않았습니다. 또한 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.