如何在 MEAN 应用程序中的同一 HTTP 请求中调用多个方法
Posted
技术标签:
【中文标题】如何在 MEAN 应用程序中的同一 HTTP 请求中调用多个方法【英文标题】:How to call multiple method in same HTTP request in MEAN app 【发布时间】:2020-04-28 16:45:43 【问题描述】:我需要根据优先顺序发送 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 方法,同时我需要调用 delete 方法。但是该删除方法应该在执行特定的 post 方法后调用。
重要的是 post 方法和 delete 方法带有相同的 http 请求。
这可能吗?如果是,我如何在前端实现功能以使用 Angular 8 执行该过程。
【问题讨论】:
【参考方案1】:是的,这可以调用 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);
);
【讨论】:
以上是关于如何在 MEAN 应用程序中的同一 HTTP 请求中调用多个方法的主要内容,如果未能解决你的问题,请参考以下文章
mean.io - 错误:“请求实体太大”。如何在meanio模块之外增加bodyParser限制?
Ionic 2 MEAN 应用程序不会在获取请求时返回更新的数据
如何从 Angular 6 向 node.js 发送 https 请求