调用按钮时,如何将反应 DOM 状态的信息传递给后端(NodeJS)?

How do I pass a react DOM state's information to backend(NodeJS) when a button is invoked?

我在前端使用他的逻辑,但实际上在后端接收该数据时遇到了一些问题。我正在使用 Sails.js 框架。有什么建议吗?

handleSubmit = () => {
    // Gathering together the data you want to send to API
    const payload = {
        subject: this.state.subject,
        message: this.state.message,
    };
    this.handleAjaxRequest(payload);
};

//向后端发送数据的方法 // 发出请求 - 我在这里使用 Axios。

handleAjaxRequest = (payload) => {
    let request = axios({
        method: 'post',
        url: '/api/',
        data: payload,
        headers: 'Content-Type: application/json'
    });

// 处理后端的响应。

    request.then(response => {
        console.debug(response.data);
    })
    .catch(error => {
        console.error(error);
    })
};

我以前用 Express 来做这件事,没有遇到这些问题。 任何帮助、方法、建议都非常受欢迎:)

请原谅我的无知,我就是来学习的

好的,所以我要做的第一件事就是使用命令 sails generate api data 生成一个新的 restful API。在 package.json 文件中,我设置了一个包含后端端点的代理,就像这样 "proxy": "http://localhost:1337" - 我的意思是,你不需要这样做,但如果你不需要,那么你必须包括这个 URL 部分在每个请求上。因为不改变,所以还是挺方便的。

前端,我创建了一个函数sendData(),它从我之前的组件中获取必要的数据(取决于用户选择的内容)并使用axios 后端 -->

sendData = () => {
                const { relYear } = this.props.history.location.state.dev;
                const { relMonth } = this.props.history.location.state.dev;
                const selectedMonth = moment().month(relMonth).format("MM");
                const finalSelect = parseInt(relYear + selectedMonth, 10);


                axios.post('/data', { 'selectedDate' : finalSelect })
                    .then(res => console.log('Data send'))
                    .catch(err => console.error(err));
                }

后端我获取了数据,进行了计算并将结果发送回我应用程序的前端。 -->

getApiData = () => {
            let apiData = [];
            axios.get('/data')
            .then(res =>  {
            let first = Object.values(res.data.pop()).shift();    // Getting the relevant 'selectedDate'
            apiData.push(first);
            }).catch(err => console.error(err));
            return apiData;            
        }