如何在 MEAN 应用程序中的同一个 HTTP 请求中调用多个方法
How to call multiple method in same HTTP request in MEAN app
我需要发送 http 请求并根据优先顺序从服务器获取响应。
这是我的 admin.js 文件
const express = require('express')
const router = express.Router()
const User = require('../models/User')
const deletedUser = require('../models/deletedUser')
const multer = require('multer')
//all users
router.get('/users', async(req,res)=>{
try{
const user = await User.find();
res.send(user);
}catch(err){
res.json({message: err});
}
});
//specific users http://localhost:3000/takeaction/users/5d9ec527be723459c01b99b2
router.get('/users/:Id', async(req,res)=>{
try{
const user = await User.findById(req.params.Id);
res.json(user);
}catch(err){
res.json({message: err});
}
});
// take action by id
router.post('/delete/:Id', async(req,res)=>{
const selectedUser = await User.findById(req.params.Id);
// const deleteduser = new deletedUser({})
// res.json(selectedUser._id);
const deleteduser = new deletedUser({
_id: selectedUser._id,
email: selectedUser.email,
password: selectedUser.password,
username: selectedUser.username,
firstname: selectedUser.firstname,
lastname: selectedUser.lastname,
telephone: selectedUser.telephone,
line1: selectedUser.line1,
line2: selectedUser.line2,
line3: selectedUser.line3,
nic: selectedUser.nic,
broadcasts: selectedUser.broadcasts,
selling: selectedUser.selling,
bookmarks: selectedUser.bookmarks,
sellerReply: selectedUser.sellerReply,
finalized: selectedUser.finalized,
overallrate: selectedUser.overallrate,
ratings : selectedUser.ratings,
profileImage: selectedUser.profileImage,
replying: selectedUser.replying
});
deleteduser.save().then(data=>{
res.json(data);
}).catch(err=>{
res.json({message: err})
});
});
router.delete('/deleteuser/:id', async(req,res)=>{
try {
const deleteduser = await User.remove({_id: req.params.id});
res.json(deleteduser);
console.log("User deleted!!")
} catch (error) {
res.json({message: error});
}
});
module.exports = router
首先我需要从前端服务文件调用post方法,同时我需要调用删除方法。但是应该在执行特定的 post 方法后调用该删除方法。
重要的是 post 方法和删除方法带有相同的 http 请求。
这可能吗?如果是,我如何在前端实现函数以使用 angular 8.
执行该过程
是的,这可以调用 2 个 API:
let userId = // user id here ;
this.http
.post<any>(`/delete/${userId}`)
.subscribe((resp) => {
this.http.delete<any>(`/deleteuser/${userId}`).subscribe((res) => {
//deleted successfully
},err=>{
console.log('err',err);
});
},err=>{
console.log('err',err);
});
我需要发送 http 请求并根据优先顺序从服务器获取响应。 这是我的 admin.js 文件
const express = require('express')
const router = express.Router()
const User = require('../models/User')
const deletedUser = require('../models/deletedUser')
const multer = require('multer')
//all users
router.get('/users', async(req,res)=>{
try{
const user = await User.find();
res.send(user);
}catch(err){
res.json({message: err});
}
});
//specific users http://localhost:3000/takeaction/users/5d9ec527be723459c01b99b2
router.get('/users/:Id', async(req,res)=>{
try{
const user = await User.findById(req.params.Id);
res.json(user);
}catch(err){
res.json({message: err});
}
});
// take action by id
router.post('/delete/:Id', async(req,res)=>{
const selectedUser = await User.findById(req.params.Id);
// const deleteduser = new deletedUser({})
// res.json(selectedUser._id);
const deleteduser = new deletedUser({
_id: selectedUser._id,
email: selectedUser.email,
password: selectedUser.password,
username: selectedUser.username,
firstname: selectedUser.firstname,
lastname: selectedUser.lastname,
telephone: selectedUser.telephone,
line1: selectedUser.line1,
line2: selectedUser.line2,
line3: selectedUser.line3,
nic: selectedUser.nic,
broadcasts: selectedUser.broadcasts,
selling: selectedUser.selling,
bookmarks: selectedUser.bookmarks,
sellerReply: selectedUser.sellerReply,
finalized: selectedUser.finalized,
overallrate: selectedUser.overallrate,
ratings : selectedUser.ratings,
profileImage: selectedUser.profileImage,
replying: selectedUser.replying
});
deleteduser.save().then(data=>{
res.json(data);
}).catch(err=>{
res.json({message: err})
});
});
router.delete('/deleteuser/:id', async(req,res)=>{
try {
const deleteduser = await User.remove({_id: req.params.id});
res.json(deleteduser);
console.log("User deleted!!")
} catch (error) {
res.json({message: error});
}
});
module.exports = router
首先我需要从前端服务文件调用post方法,同时我需要调用删除方法。但是应该在执行特定的 post 方法后调用该删除方法。
重要的是 post 方法和删除方法带有相同的 http 请求。
这可能吗?如果是,我如何在前端实现函数以使用 angular 8.
执行该过程是的,这可以调用 2 个 API:
let userId = // user id here ;
this.http
.post<any>(`/delete/${userId}`)
.subscribe((resp) => {
this.http.delete<any>(`/deleteuser/${userId}`).subscribe((res) => {
//deleted successfully
},err=>{
console.log('err',err);
});
},err=>{
console.log('err',err);
});