如何将变量发送到后端 - Mern Stack
How to send a variable to Backend - Mern Stack
我正在尝试根据查询从 Mongo 数据库中获取一些记录。我完成了后端,它与 Postman 配合得很好,但我不知道如何将查询变量从 React 前端发送到后端。
有一个客户端模型 class,我想检索具有特定公司 ID 的所有客户端,我将在单击按钮时从前端发送这些 ID。
Controller.js
exports.viewSpecificClients = async(req,res)=>{
const id = req.query.id;
console.log(id);
try{
const clients = await Client.find({clientCompanyName: id});
res.json({clients});
}catch(err){
console.log(err, 'clientsController.viewSpecificClients error');
res.status(500).json({
errorMessage: 'Please try again later'
})
}
};
路线
router.get('/', clientsController.viewSpecificClients);
我必须使用 Redux,所以我尝试这样做但我只能设法显示数据库中的所有客户端(我不知道如何发送变量)。
Action.js 在 Redux
export const getClients = () => async dispatch =>{
try{
const response = await axios.get('clients');
dispatch({
type: GET_CLIENTS,
payload: response.data.clients
});
}catch(err){
console.log('getClients api error:', err);
}
}
你能帮我看看如何使用 redux 从前端发送公司 ID - 也就是说我需要帮助来了解如何更改操作功能以及我必须在 main.js 单击按钮时的文件 ?
你有两个选择。首先,您将参数值作为查询字符串传递。另一种选择是将您的获取请求修改为 POST 请求,您可以在其中添加请求正文。如果您尝试像对象一样传递更多值,post 请求会更好。
如果你在前端有权限获取companyId,你只需要
const response = await axios.get(`clients?id=${companyId}`);
假设后端 express 已经配置了查询解析器。(默认)
也许你可以拥有
const getClients = (companyId) => dispatch => {
const response = await axios.get(`clients?id=${companyId}`);
// above code here
}
如果您需要进一步跟进,请告诉我。
我正在尝试根据查询从 Mongo 数据库中获取一些记录。我完成了后端,它与 Postman 配合得很好,但我不知道如何将查询变量从 React 前端发送到后端。
有一个客户端模型 class,我想检索具有特定公司 ID 的所有客户端,我将在单击按钮时从前端发送这些 ID。
Controller.js
exports.viewSpecificClients = async(req,res)=>{
const id = req.query.id;
console.log(id);
try{
const clients = await Client.find({clientCompanyName: id});
res.json({clients});
}catch(err){
console.log(err, 'clientsController.viewSpecificClients error');
res.status(500).json({
errorMessage: 'Please try again later'
})
}
};
路线
router.get('/', clientsController.viewSpecificClients);
我必须使用 Redux,所以我尝试这样做但我只能设法显示数据库中的所有客户端(我不知道如何发送变量)。
Action.js 在 Redux
export const getClients = () => async dispatch =>{
try{
const response = await axios.get('clients');
dispatch({
type: GET_CLIENTS,
payload: response.data.clients
});
}catch(err){
console.log('getClients api error:', err);
}
}
你能帮我看看如何使用 redux 从前端发送公司 ID - 也就是说我需要帮助来了解如何更改操作功能以及我必须在 main.js 单击按钮时的文件 ?
你有两个选择。首先,您将参数值作为查询字符串传递。另一种选择是将您的获取请求修改为 POST 请求,您可以在其中添加请求正文。如果您尝试像对象一样传递更多值,post 请求会更好。
如果你在前端有权限获取companyId,你只需要
const response = await axios.get(`clients?id=${companyId}`);
假设后端 express 已经配置了查询解析器。(默认)
也许你可以拥有
const getClients = (companyId) => dispatch => {
const response = await axios.get(`clients?id=${companyId}`);
// above code here
}
如果您需要进一步跟进,请告诉我。