微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何将变量发送到后端 - Mern Stack

如何解决如何将变量发送到后端 - Mern Stack

我正在尝试根据查询从 Mongo db 获取一些记录。我完成了后端,它与 Postman 配合得很好,但我不知道如何将查询的变量从 React 前端发送到后端。

一个 Client 模型类,我想检索具有特定公司 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,所以我尝试这样做,但我只能设法显示数据库中的所有客户端(我不知道如何发送变量)。

Redux 中的 Action.js

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 文件中做什么时按钮被点击?

解决方法

如果你在前端可以访问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
}

如果您需要进一步跟进,请告诉我。

,

你有两个选择。首先,您将参数的值作为查询字符串传递。另一种选择是将您的 get 请求修改为 POST 请求,您可以在其中添加请求正文。如果您尝试像对象一样传递更多值,则 post 请求会更好。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。