我在尝试使用我的API添加新用户时遇到了一个“有趣”的问题......即使提交了必填字段,我还是收到了以下错误。我真的不知道为什么。我已经添加了代码的相关部分。谢谢。
$ curl -v http://localhost:3000/api/users --data "{ 'user_name':'xsa', 'email':'foo@bar.baz' }"
错误:
{"errors":{"email":{"message":"Path `email` is required.","name":"ValidatorError","properties":{"message":"Path `{PATH}` is required.","type":"required","path":"email"},"kind":"required","path":"email","$isValidatorError":true}},"_message":"User validation failed","message":"User validation failed: email: Path `email` is required.","name":"ValidationError"}
models/user.js
[...]
user_name: {
type: String,
lowercase: true,
required: true,
index: {
unique: true
},
trim: true,
min: 3,
max: 8
},
email: {
type: String,
lowercase: true,
required: true
},
[...]
routes/user.js
router.post('/users', (req, res, err) => {
var user = new User(req.body);
user.save()
.catch((err) => {
res.send(err);
});
});
2条答案
按热度按时间j8ag8udp1#
你有这个:
更改为:
编辑:HTML表单如下:
当用户按下提交按钮时,您请求正文将被整齐地发送到您路由器,您将有请求正文,用户名和req.body.email等着您
我删除了很多CSS,使其更容易阅读。根据需要应用您自己的样式。
p1iqtdky2#
在html页面上获取数据的表单中有名称标记。在键入这些名称标记时不应留下任何空格。同时,此处的命名法应与模型中的命名法相同。
因为一个我没有注意到的空字符,我损失了半个小时。