reactjs - 使用 axios 发布请求,给出错误 400.u
问题描述
所以我是构建应用程序的新手,并且一直在构建提交表单,但是我的发布请求给了我一个错误 400。我知道我的数据库已连接,因为我的 GET 请求工作正常,我知道我的 API 有点功能,因为失眠会发出 POST 请求美好的。这是我的 apply.js 页面代码。在控制台中,状态变化出现了,所以我认为信息传递得很好。我觉得这一定是我的帖子请求在某个地方做得不好。
function Apply() {
const [applicant, setApplicant] = useState("");
const [address, setAddress] = useState("");
const [loanAmount, setLoanAmount] = useState(0);
const handleChange = ({target})=> {
if(target.name === "username") setApplicant(target.value);
else if(target.name === "address") setAddress(target.value);
else if(target.name === "loanAmount") setLoanAmount(target.value);
else console.error("error changing Applicant");
}
const handleSubmit = (e) => {
e.preventDefault()
console.log(applicant, loanAmount, address);
axios
.post('http://localhost:5000/users/add',{applicant, loanAmount, address})
.then(res => console.log(res.data))
.catch(err => console.log("Error of type: " + err))
我觉得我在做一些非常愚蠢或语法上很愚蠢的事情,但这里是 user.model,js
const mongoose = require('mongoose');
const Schema = mongoose.Schema;
const userSchema = new Schema({
username: { type: String, required: true, unique: true, trim: true, minlength: 3},
loanrequest: {type: Number, required: true, trim: true},
address: {type: String, required: true, trim: true },
email: {type: String, required: false, trim: true}
});
let users = mongoose.model('User', userSchema);
module.exports = users;
这是我使用 Users.js 中的模型的路线
const router = require('express').Router();
let User = require('../models/user.model');
router.get('/', (req,res) => {
User.find(req.params.id)
.then(users => res.json(users))
.catch(err => res.status(400).json('Error: ' + err));
});
router.post('/add', (req, res) => {
const username= req.body.username;
const loanrequest= Number(req.body.loanrequest);
const address= req.body.address;
const email = req.body.address;
const newUser = new User ({
username,
loanrequest,
address,
email
});
newUser.save()
.then(() => res.json('Application Added!'))
.catch(err => res.status(400).json('Error: ' + err));
});
module.exports = router;
如果这篇文章超长,我很抱歉。我花了大约 2 天的时间试图弄清楚我做错了什么。谢谢你的帮助!
解决方案
你试过而不是这段代码
const username= req.body.username;
const loanrequest= Number(req.body.loanrequest);
const address= req.body.address;
const email = req.body.address;
const newUser = new User({
username,
loanrequest,
address,
email
});
在下面的代码中,我认为您不能像这样创建一个新文档,因为在上述情况下,架构将采用如下对象 {1: ..., 2: ...} 而不是所需的属性(用户名,电子邮件等...)
const userData = {
username: req.body.username,
loanrequest: Number(req.body.loanrequest),
address: req.body.address,
email: req.body.address
}
const newUser = new User(userData);
推荐阅读
- configuration - 通过 appsettings.json 为 Application Insights 配置 Serilog
- java - 软件内的数据库集成
- java - 如何在异步任务的 android 应用程序中添加 Internet 连接问题对话框
- javascript - javascript 添加新表单
- xml - 我可以使用哪个支持 IBM Datapower 扩展的 Java XSLT 处理器?
- neo4j - 如何使用 WITH 子句正确携带值
- audio - 是否可以使用 Office 通用 API 从加载项插入视频?
- java - Appium:如何使用 java 中的自动化测试用例检查设备名称
- python - 如何通过 Python 接收 Elasticsearch 集群的 WriteIOPS 信息?
- wget - 使用 wget 传播删除