javascript - Axios POST 请求数据显示为未定义
问题描述
为此,我正在使用 React、NodeJS 和 Express。我正在使用一个表单,一旦提交表单,就会调用一个将数据发送到后端的函数。在 react 包中设置了代理。这是 React 应用程序中的代码:
import React from "react";
import { useState } from "react";
const axios = require('axios');
const Target = () => {
const [Val, setVal] = useState('');
const sendVal = (e) => {
e.preventDefault();
axios.post('/api', {
TGVAL:Val
})
.then(function (response) {
console.log(response);
})
}
return(
<div className="TargetPrice">
<form onSubmit={sendVal}>
<label htmlFor="inputTarget">At what value do you want the alert?</label>
<br />
<input type="text" className="inputTarget" value={Val} onChange={(e) => setVal(e.target.value)} />
<button style={{marginLeft:"5px"}} type="submit">Submit</button>
</form>
</div>
)
}
export default Target;
这是后端代码:
const express = require("express");
const PORT = process.env.PORT || 3001;
const app = express();
app.post('/api', (request, response) => {
console.log(request.TGVAL);
})
每当提交表单时,都会在后端记录“未定义”。
我知道后端正在接收一些数据,因为每次提交表单时,它都会记录未定义。问题是它没有记录表单中的数据。
对此的任何帮助将不胜感激。
编辑:由于 Jaromonda X,问题已得到解决。添加app.use(express.json())
和request.body.TGVAL
解决方案
推荐阅读
- python - 将 Python 连接到远程 SQL Server
- dialogflow-es - Dialogflow 知识库 - 带有类别的 html 链接
- javascript - 如何使用 Object 而不是 Array 作为数据来构建 React Table
- python - 将 NumPy 数组中的字符串匹配为另一个数组中的子字符串的更有效方法是什么?
- asp.net-core - 我如何在一个事务中提交身份 aspnetusers 表和另一个表
- javascript - 使用 XMLHttpRequest 上传多个文件 上传具有不同名称的第一个文件
- ssl - 使用 ssl 证书反应运行服务器
- javascript - 换行符不适用于追加
- laravel - 如何在数组 Laravel 中仅指定资源的方法
- python - 如何使用 Google Colab 在 Python 中执行此 POST 请求。我目前收到 400 响应代码