Я использую 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)
)
}
}
Помогите мне