Как отправить информацию одного пользователя другому, используя angular, mon goose и express? - PullRequest
0 голосов
/ 17 июня 2020

Я использую mon goose nodejs, express и angular в моем проекте. Я хочу отправить информацию о зарегистрированном пользователе другому пользователю, которого он выберет. Сначала он находит конкретного пользователя, группа крови которого совпадает с группой крови, которую он ищет. Я получаю список пользователей, связанных с поиском. Моя проблема в том, что я хочу отправить запрос конкретному пользователю из этого списка и сохранить эту информацию в его базе данных. Я не знаю, как это сделать, потому что я новичок в этих языках. вот мой файл api ...

router.post('/search', verifyToken,  (req, res) => {
    let userData = req.body
    const userId = req.userId;
    User.find({bloodgroup: userData.bloodgroup, _id: { $ne: userId }}, (error, user) => {
        if (error) {
             console.log(error)
        } else {
            res.status(200).send(user)
        }
    })
})

router.post('/requests', verifyToken, (req, res) => {
    let userData = req.body;
    const userId = req.userId;
    User.find({email: userData.email},(error, user) => {
        if (error) {
            console.log(error)
       } else 
           if (!user) {
               res.status(401).send('user Does not exists')
           } else { 
               user.save({$set: {requests: {
                   _id: userId,
                   bloodgroup: userData.bloodgroup,
                   city: userData.city
               }}})
              res.status(200).send(user)
           }
    })
})

вот мой пользователь. js

const mongoose = require('mongoose');
const uniqueValidator = require('mongoose-unique-validator')
const Schema = mongoose.Schema


const userSchema = new Schema({
    firstname:{type: String},
    lastname:{type: String},
    email: {type: String,  unique:true},
    phonenumber:{type: Number, unique:true},
    bloodgroup:{type: String},
    gender:{type: String},
    dateofbirth:{type: String},
    city:{type: String},
    username: {type:String,  unique:true}, 
    password:{type: String},
    requests: [{
        _id: {type: Object},
        bloodgroup: {type: String},
        city: {type: String}
    }]
})

userSchema.plugin(uniqueValidator);

module.exports = mongoose.model('user', userSchema, 'users')

вот мой компонент. js

import { Component, OnInit } from '@angular/core';
import { FormGroup, FormBuilder, Validators } from '@angular/forms';
import { DonerService } from '../doner.service';
import { HttpClient } from "@angular/common/http";
import { Router } from '@angular/router';

@Component({
  selector: 'app-find-doner',
  templateUrl: './find-doner.component.html',
  styleUrls: ['./find-doner.component.css']
})
export class FindDonerComponent implements OnInit {
  donerForm: FormGroup;
  bloods = ['A+', 'A-', 'B+', 'B-', 'AB+', 'AB-', 'O+', 'O-'];
  doners: any = [];
  showFind: boolean = true;
  showSearch: boolean = false;
  blood:any;
  
  constructor(private Fb: FormBuilder, private donerService: DonerService, private http: HttpClient, private router: Router) {
    this.donerForm = this.Fb.group({
      bloodgroup: ['',[Validators.required]],
      units: ['',[Validators.required]],
      country: ['',[Validators.required]],
      city: ['',[Validators.required]]
    })
   }

  ngOnInit(): void {
   
  }

  onSearch() {
    this.showSearch=true;
    this.showFind= false;
    
    // console.log(this.donerForm.value);
    this.blood = this.donerForm.value.bloodgroup;
    this.http.post("http://localhost:3000/api/search", this.donerForm.value)
    .subscribe(
      res=> this.doners=res,
      err => console.log(err)
    )
   
  }
  
 

  onBack() {
    this.showSearch=false;
    this.showFind= true;
  }

  onSend() {
    this.http.post("http://localhost:3000/api/requests" , this.donerForm.value)
    .subscribe(
      res=> console.log(res),
      err => console.log(err)
    )
  }

}

Помогите мне

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...