以下是我的架构:
var userSchema = new Schema({
username: {
type: String,
required: true
},
password: {
type: String,
required: false
}
});
现在,当我尝试保存上述架构的文档时,出现以下错误:
{ message: 'Validation failed',
name: 'ValidationError',
errors:
{ username:
{ message: 'Validator "required" failed for path username',
name: 'ValidatorError',
path: 'username',
type: 'required' } } }
以上是mongoose在保存时返回的错误对象。我搜索了这个错误,但无法理解有什么问题。我想保存的文件如下:
{
username: "foo"
password: "bar"
}
知道这意味着什么吗?我也搜索了mongoose文档但在验证部分找不到任何内容。
答案 0 :(得分:1)
首先,您在foo
之后缺少逗号(,)。
现在,{ username: "foo", password: "bar" }
JSON是通过http发送的,我们是服务器端代码中的实际对象吗?
如果是,请尝试console.log(youVariable.username)
,看看它是undefined
还是价值foo
。如果看到undefined
,则表示您的对象未正确解析。
您可以确保发送POST请求的对象是在标头中发送“application / json”,您可能正在接收其他内容,因此您的JSON未被解析为有效的javascript对象。