Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/37.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 为什么我的POST请求在尝试插入表单数据时不起作用?_Javascript_Node.js_Reactjs_Express - Fatal编程技术网

Javascript 为什么我的POST请求在尝试插入表单数据时不起作用?

Javascript 为什么我的POST请求在尝试插入表单数据时不起作用?,javascript,node.js,reactjs,express,Javascript,Node.js,Reactjs,Express,这是我的服务器端 const express = require("express"); const app = express(); const cors = require("cors"); const pool = require("./db"); const { response } = require("express"); app.use(cors()); app.use(express.json())

这是我的服务器端

const express = require("express");
const app = express();
const cors = require("cors");
const pool = require("./db");
const { response } = require("express");

app.use(cors());
app.use(express.json()); 

app.post("/species", async (req, res) => {
  try {
    console.log(req)
    const {name, description, img} = req.body
    const newSpecies = await pool.query(
      "INSERT INTO speciesdata (name, description, img ) VALUES ($1, $2, $3) RETURNING *",
      [name, description, img]
    );
    console.log(newSpecies)
    res.json(newSpecies.rows);
  } catch (err) {
    console.error(err.message);
  }
});
我不确定我是否正确地解构了
req.body
的属性,因为当我控制台记录它时,它返回了一个空数组

这是我的前端


function AddspeciesForm() {

  const [Name, setName] = useState('');
  const [Description, setDescription] = useState('');
  const [Image, setImage] = useState('');

  const onSubmitForm = async e => {
    e.preventDefault();
    try {
      const response = await fetch("http://localhost:5000/species", {
        method: 'POST',
        headers: { "Content-Type": "application/json" },
        body: JSON.stringify({
          name: Name,
          description: Description,
          img: Image
        })
      });
      
      const data = await response.json()
      console.log(data)

      window.location = "/";
    } catch (err) {
      console.error(err.message);
    }
  };
}
由于这是我的第一个项目,需要后端和前端,我可能用一种尴尬的方式表达了我的问题,希望你们能理解。提前谢谢你

这是我的邮递员请求。

更新1
当我在邮递员上将
内容类型
更改为
application/JSON
时,值不再为空。和
req.body
返回正确的值。但是在我的前端,我已经指定了我的
内容类型:application/JSON
。那么,我如何在我的应用程序上引入和显示更改呢?

在发送请求时不需要使用
JSON.stringify
,因为它是以JSON格式发送的。如果您使用JSON.stringify,它将成为纯文本。您确定必须使用
JSON.stringify()
?是否需要将调用移动到
app.use(express.JSON())
app.listen(port)
?@Gpack有什么区别?我已经删除了
JSON.stringify()
,但它仍然返回一个空数组