均值堆栈中的API

时间:2019-05-31 08:46:36

标签: node.js mongodb angular6

能否对angular6中的服务执行以下操作? 如何满足以下要求调用api? 1.强制性检查 2.如果存在任何强制性检查失败,则返回带有正确消息的响应代码400 3.数据类型验证 4.返回带有正确消息的响应代码400 5.初始化数据库调用 6.运行数据库查询并返回响应 7.如果在数据库调用期间发生任何错误,请返回响应代码500和正确的消息 8.如果成功,则返回响应对象。

这对我来说是新事物,因此不知道如何实现。所以什么也不能尝试。

// blog.service.ts

import { Injectable, Inject, Output, EventEmitter } from '@angular/core';
import { HttpClient, HttpHeaders } from '@angular/common/http';
import { Observable } from 'rxjs';
import { APP_CONFIG, AppConfig } from '../app.config';
import { map } from 'rxjs/operators';

@Injectable({
  providedIn: 'root'
})
export class BlogService {

  @Output() userLoggedIn: EventEmitter<any> = new EventEmitter();
  constructor(private http: HttpClient, @Inject(APP_CONFIG) private _config: AppConfig) { }
  ////////////////////////////////////////////////////
  Save(blogForm: any): Observable<any> {
    return Observable.create(observer => {
      this.http.post(this._config.apiEndpoint + '/newblog',
        JSON.stringify(blogForm), { headers: new HttpHeaders({ 'Content-Type': 'application/json' }) }
      )
        .subscribe((response: Response) => {
          observer.next(response);
          observer.complete();
        });
    });
  }
  ////////////////////////////////////////////////////
  allBlogs(): any{
    return this.http.get(this._config.apiEndpoint + '/getblogs').pipe(map(response=>response));
  }
  ////////////////////////////////////////////////////
  recentBlogs(): any{
    return this.http.get(this._config.apiEndpoint + '/get-recent-blogs').pipe(map(response=>response));
  }
  ////////////////////////////////////////////////////
  viewBlog(blog_id:number): any{
    return this.http.get(this._config.apiEndpoint+'/viewblog/'+blog_id).pipe(map(response=>response));
  }
  ////////////////////////////////////////////////////
  datewiseBlogs(year:any,month:any): any{
    return this.http.get(this._config.apiEndpoint+'/year-blogs/'+year+'/month/'+month).pipe(map(response=>response));
  }
  ////////////////////////////////////////////////////
  deleteblog(blogid): Observable<any> {
    return Observable.create(observer => {
      this.http.post(this._config.apiEndpoint+'/deleteblog', { _id: blogid }, { headers: new HttpHeaders({ 'Content-Type': 'application/json' }) }
      ).subscribe((response: Response) => {
          observer.next(response);
          observer.complete();
        });
    });
  }
  ////////////////////////////////////////////////////
  editblog(blogForm: any): Observable<any> {
    return Observable.create(observer => {
      this.http.post(this._config.apiEndpoint + '/updateblog',
        JSON.stringify(blogForm), { headers: new HttpHeaders({ 'Content-Type': 'application/json' }) }
      ).subscribe((response: Response) => {
        observer.next(response);
        observer.complete();
      });
    });
  }
  ////////////////////////////////////////////////////
}

预期结果是调用上面服务中的api并执行上面列出的其他操作。

0 个答案:

没有答案