如何解决为什么我的 POST 请求在尝试插入表单数据时不起作用?
这是我的服务器端。
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,img ) VALUES ($1,$2,$3) RETURNING *",[name,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
当我将邮递员的 content-type
更改为 application/JSON
时,这些值不再为空。而 req.body
返回正确的值。但是在我的前端我已经指定了我的 content-type: application/JSON
.那么如何在我的应用程序中引入和显示更改?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。